我有一个指向url的ListView类。我想在同一个url上有一个CreateView表单,在列表的每个项目的顶部。到目前为止,没有显示任何表单(只显示按钮)。我该怎么做呢?
现在我有了这些类,它们都指向urls.py上的同一个url:
view.py:
class TheList(ListView):
model = Item
template_name='item/post_create.html'
class CreatePost(CreateView):
model = Post
fields = [ 'post' ]
template_name_suffix='_create'
更新。现在显示了文本区域,但是提交表单不会保存数据:
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
发布于 2018-06-09 03:10:01
您可以使用ListView
的get_context_data()
方法将表单添加到模板的上下文中:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = <your form>
return context
https://stackoverflow.com/questions/50766995
复制相似问题