gpt4 book ai didi

django - 脆表单布局中的 ImageField 预览

转载 作者:行者123 更新时间:2023-12-01 14:56:55 29 4
gpt4 key购买 nike

我想显示来自 ImageField 的图像。我正在使用 Django crispy forms 。似乎我需要使用 HTML 布局助手,但我不确定如何在此处访问模板变量。

以下呈现一个空白图像标签:

HTML('<img src="{{ logo.url }}" />')

我是在引用这个错误,还是有更好的脆皮方法?

这是完整的代码,因此您可以获得更好的想法:

forms.py
class CompanyForm(forms.Form):
name = forms.CharField(required=False, label="Company name")
logo = forms.ImageField(required=False, label="Logo")

# form layout
helper = FormHelper()
helper.form_class = 'form-horizontal'
helper.layout = Layout(
Div(
'name',
HTML('<img src="{{ logo.url }}" />'),
css_class='span4',
),

FormActions(
Submit('submit', 'Save', css_class="btn-primary pull-right"),
)
)

模型.py
class Company(models.Model):
name = models.CharField(max_length=100)
logo = models.ImageField(upload_to = 'logos/', null=True)

views.py

我在我的 View 中设置表单的初始值:
...
profile = Company.objects.get(name="foo")
form = CompanyForm(initial={'name': profile.name, 'logo': profile.logo, })

context = {
'profile_form' : form,
}

return render_to_response('dashboard/company-profile.html', context_instance=RequestContext(request, context))

company-profile.html
{% load crispy_forms_tags %}
<div class="row">
{% crispy profile_form %}
</div>

最佳答案

有趣的是,我今天刚刚在一个内联图像上传表单集上处理同样的问题,我最终得到了这个实现:

class ImageModelForm(forms.ModelForm):

class Meta:
model = ImageModel

def __init__(self, *args, **kwargs):
super(ImageModelForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_tag = False
self.helper.disable_csrf = True
self.helper.layout = Layout(
'title',
'description',
'imagefile',
HTML("""{% if form.imagefile.value %}<img class="img-responsive" src="{{ MEDIA_URL }}{{ form.imagefile.value }}">{% endif %}""", ),
'flag_featured',
)

关于django - 脆表单布局中的 ImageField 预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076248/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com