Django - 脆皮形式未显示

时间:2021-04-12 10:29:12

标签: django django-forms django-crispy-forms

我正在尝试呈现此表单:

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,但里面没有表单...

看起来很奇怪。

有什么帮助吗?

非常感谢。

卡罗

1 个答案:

答案 0 :(得分:1)

您的表单类定义如下:class LoadForm(forms.Form): 请注意,这里是 Form 而不是 ModelForm 因此使用 Meta 类并指定 {{1} } 没什么区别。相反,您想使用 ModelForm [Django docs] 并且您还需要在 model 中指定 fieldsexclude

Meta
相关问题