作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨 Stackoverflow 的人,
我无法使用基于类的 View 呈现清晰的表单。当我使用基于函数的 View 时一切正常。
像往常一样,我按如下方式生成 forms.py:
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Div, Submit, HTML, Button, Row, Field
from item.models import Item
class CreateItemForm(forms.ModelForm):
class Meta:
model = Item
exclude = ('user',)
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_tag = False
self.helper.form_class = 'form-horizontal'
self.helper.layout = Layout(
Fieldset(
'Create your item here',
'name', 'description',
'save',
),
)
self.request = kwargs.pop('request', None)
return super(CreateItemForm, self).__init__(*args, **kwargs)
View 函数非常简单和标准:
from django.views.generic.edit import CreateView,
from item.models import Item
from item.forms import CreateItemForm
class ItemCreate(CreateView):
form_class = CreateItemForm
model = Item
template_name = 'item/item_create_form.html'
并且模板也遵循最少的说明:
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<h2>Create new Item</h2>
<form action="." class="crispy form-horizontal" method="post">
{% crispy form form.helper %}
</form>
{% endblock %}
我的问题是 Django 会提示“VariableDoesNotExist at/item/add/, Failed lookup for key [helper] in ...”。
crispy 表单是否与基于类的 View 兼容?如何交出帮助信息才能正确创建表单?
感谢您的帮助和建议。
最佳答案
你的表单中的构造函数缩进太多,这样它属于表单的 Meta
类,但它应该直接在 CreateItemForm
关于Django:基于类的 View 无法呈现松脆的形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052420/
我是一名优秀的程序员,十分优秀!