从 Django 表单获取图像 url

Get image url from django form

我很难从 Django 格式中获取图像 url。

型号:

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

表格:

class SponsorForm(forms.ModelForm):

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

当我渲染它时使用:

{{ sponsorform.image }}

它打印:

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

所以我的问题是,如何在模板中获取 url?我试过:

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

但似乎没有任何效果,有什么建议吗?

你应该试试 {{ sponsorform.instance.image.url }}。如果表单是无限的,你可以这样做:

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

这些属性在 formfield.value 内,所以:

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