我有以下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
答案 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})