在ListView网址上显示CreateView表单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ListView网址上显示CreateView表单相关的知识,希望对你有一定的参考价值。
我有ListView类指向一个网址。我想在列表的每个项目的顶部的同一个URL上有一个CreateView表单。到目前为止还没有显示任何表格(只显示按钮)。我怎样才能做到这一点?
现在我有这些类,都指向urls.py上的相同url:
view.朋友:
class TheList(ListView):
model = Item
template_name='item/post_create.html'
class CreatePost(CreateView):
model = Post
fields = [ 'post' ]
template_name_suffix='_create'
更新。现在textarea正在显示,但提交表单不会保存数据:
class CreatePost(CreateView):
class PostForm(ModelForm):
class Meta:
model = Post
fields = ['post']
widgets = {
'post': forms.Textarea()
}
class TheList(ListView):
model = Item
template_name='item/items.html'
def get_context_data(self, **kwargs):
context = super(TheList, self).get_context_data(**kwargs)
context['form'] = CreatePost.PostForm
return context
答案
您可以使用get_context_data()
的ListView
方法将表单添加到模板的上下文中:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = <your form>
return context
以上是关于在ListView网址上显示CreateView表单的主要内容,如果未能解决你的问题,请参考以下文章
如何将 CreateView 与 ModelForm 一起使用