2016-01-05 14 views
5

Tôi có các thư mục để lấy url hình ảnh ra khỏi dạng django.Nhận url hình ảnh từ biểu mẫu django

mẫu:

class Sponsor(models.Model): 
    image = ProcessedImageField(upload_to='sponsors/', 
           processors=[SmartResize(300, 120, upscale=False)], 
           format='JPEG', 
           options={'quality': 100}, 
           null=True) 

Mẫu:

class SponsorForm(forms.ModelForm): 

    class Meta: 
     model = Sponsor 
     fields = ('image',) 

Khi tôi làm cho nó sử dụng:

{{ sponsorform.image }} 

It in:

Currently: <a href="/media/sponsors/random1.jpg">sponsors/random1.jpg</a> <br>Change: <input id="id_sponsor-image" name="sponsor-image" type="file"> 

Vì vậy, câu hỏi của tôi là, làm thế nào để có được url đó trong các mẫu? Tôi đã thử:

{{ sponsorform.image.url }} 
{{ sponsorform.image.path }} 
{{ sponsorform.image.href }} 

Nhưng dường như không có tác dụng, bất kỳ đề xuất nào?

+0

Tôi nghĩ rằng đó là cùng một câu hỏi http://stackoverflow.com/questions/34563454/django-imagefield-upload-to-path/34563512#34563512 Bạn có thể kiểm tra câu trả lời của tôi –

+1

@Baterson: Tôi nghĩ rằng OP đã cố gắng để có được url hình ảnh từ một hình thức không phải từ các đối tượng. –

+0

@ShangWang có, bạn rigth, tôi đã không thông báo –

Trả lời

3

Bạn nên thử {{ sponsorform.instance.image.url }}. Trong trường hợp các hình thức là vô biên, bạn chỉ có thể làm:

{% if sponsorform.instance.image %} 
    {{ sponsorform.instance.image.url }} 
{% endif %} 
+0

Nó hoạt động nếu có một hình ảnh nhưng đối với trường hợp biểu mẫu mới nó tăng: ValueError at/onsite_api/get_sponsor_form/-1/Thuộc tính 'image' không có tệp nào liên kết với nó. – Zoli

+0

Tất nhiên, tôi nghĩ bạn sẽ mong đợi điều đó xảy ra. Tôi đã chỉnh sửa câu trả lời của mình. –

Các vấn đề liên quan