在同一网址

时间:2018-06-08 22:40:18

标签: django django-models django-forms django-views

我有以下view.py.目标是在同一URL上的每个ListView项目上显示CreateView表单。现在textarea正在显示,但提交表单不会保存数据。我真的很感激任何帮助。

view.py:

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

1 个答案:

答案 0 :(得分:0)

数据无法自动保存,因为ListView不适用于此。您只是使用其context_data发送表单。 不过,ListView具有post()get()方法,您可以根据请求方法检索在发布获取中提交的数据。

def post(self, request, *args, **kwargs):
    form  = CreatePost.PostForm(request.POST)
    if form.is_valid():
        form.save()
    return render(request, self.template_name, {'form': form})