我有一个菜单,我想放置表格。
此菜单是我的模板base.html
的一部分,我的所有观点都会对其进行扩展。
我的简单表单(myapp/forms.py
)
class LoginForm(forms.Form):
username = forms.CharField(label="name")
password = forms.CharField(label="password", widgt=forms.PasswordInput)
我看到的最简单的方法是从views.py
生成一个方法,该方法将在我的视图中的每个方法中调用。类似于:
def preprocess(request):
forms = []
forms.extend(LoginForm(), SubscribeForm(), ... )
return forms
def myview1(request):
forms = preprocess(request)
...
return render(request, "template1.html", locals()) #template1 extends base.html
def myview2(request):
forms = preprocess(request)
...
return render(request, "template2.html", locals()) #template2 extends base.html
base.html:
<html>
{{ forms[0].as_p }}
{{csrf_token }}
</html>
所有这些代码都是未经测试的,并且可能由于某些错误而无法正常工作,但我敢打赌你能得到这个想法。
这是最好的方法吗?在模板中直接生成表单的一些方法?我也可以在模板中自己编写表格,但这不是我想要实现的目标。