我正在尝试呈现此表单:
class LoadForm(forms.Form):
class Meta:
model = Load
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_tag = False
self.helper.layout = Layout(
Row(
'whouse',
'supplier',
'company',
'product',
'quantity',
'unit_price',
'load_date',
)
)
具有以下视图:
def load(request):
form = LoadForm()
context = {
'form': form,
'title': 'Nuovo Carico',
}
return render(request, 'warehouse/load.html', context)
和以下模板:
{% extends "masterpage.html" %}
{% load static %}
{% block headTitle %}
<title>{{title}}</title>
{% endblock %}
{% block contentHead %}
{% endblock %}
{% block contentBody %}
{% load document_tags %}
{% load custom_tags %}
{% load crispy_forms_tags %}
<FORM method="POST" autocomplete="off">
{{ form.media }}
{% csrf_token %}
<div class="alert alert-info">
{{ title }}
</div>
{% crispy form %}
<input type="submit" class="btn btn-primary margin-left" value="CARICA">
</FORM>
{% endblock %}
由于某种奇怪的原因,表单不会显示,我只看到标题和输入按钮。我已经尝试了非常简单的 form.as_p 没有脆皮,但仍然没有......
通过查看浏览器上的源代码,我看到有一个带有“form-row”类的 div,但里面没有表单...
看起来很奇怪。
有什么帮助吗?
非常感谢。
卡罗
答案 0 :(得分:1)
您的表单类定义如下:class LoadForm(forms.Form):
请注意,这里是 Form
而不是 ModelForm
因此使用 Meta
类并指定 {{1} } 没什么区别。相反,您想使用 ModelForm
[Django docs] 并且您还需要在 model
中指定 fields
或 exclude
:
Meta