我过去常常将表单作为function-base-view中的内容发送,我可以使用for loop简单地写下字段和值,如:
function-base-view
for loop
{% for x in field %} <p>{{ x.label_tag }} : {{ x.value }} </p>
我不记得整个过程,所以可能我写错了,但是否可以使用class-based-views执行此操作,因为当我有许多字段时,很难逐个写入它们
class-based-views
xfb7svmp1#
不完全确定这是否是你所需要的。但我仍然会尝试回答。我举了一个例子,类AuthorDetail(FormMixin,DetailView)作为基础。在get_context_data中保存了表单本身。在模板中,我首先显示了表单,然后显示了来自bbs模型的值和所请求的表单。message.label_tag。为了获得标记,我查看了这个documentation。在类中,将Rubric模型替换为您自己的模型。在模板路径中:bboard/templ.html将bboard替换为模板所在的application的名称。views.py
Rubric
bboard
application
class Dw(FormMixin, DetailView): model = Rubric template_name = 'bboard/templ.html' form_class = TestForm context_object_name = 'bbs' def get_context_data(self, **kwargs): context = super(Dw, self).get_context_data(**kwargs) context['form'] = self.get_form() print(77777, context['form']['message'].label_tag()) return context def post(self, request, *args, **kwargs): self.object = self.get_object() form = self.get_form() if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(form)
forms.py
class TestForm(forms.Form): message = forms.CharField()
模板
<form method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="adding"> </form> <h2>{{ bbs }}</h2> <h2>{{ form.message.label_tag }}</h2>
urls.py
urlpatterns = [ path('<int:pk>/', Dw.as_view(), name='aaa'), ]
1条答案
按热度按时间xfb7svmp1#
不完全确定这是否是你所需要的。但我仍然会尝试回答。我举了一个例子,类AuthorDetail(FormMixin,DetailView)作为基础。在get_context_data中保存了表单本身。在模板中,我首先显示了表单,然后显示了来自bbs模型的值和所请求的表单。message.label_tag。为了获得标记,我查看了这个documentation。
在类中,将
Rubric
模型替换为您自己的模型。在模板路径中:bboard/templ.html将bboard
替换为模板所在的application
的名称。views.py
forms.py
模板
urls.py