在ListView网址上显示CreateView表单

问题描述 投票:0回答:1

我有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
django django-models django-views
1个回答
0
投票

您可以使用get_context_data()ListView方法将表单添加到模板的上下文中:

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['form'] = <your form>
    return context
© www.soinside.com 2019 - 2024. All rights reserved.