【发布时间】:2018-06-15 17:55:36
【问题描述】:
我正在尝试在下面的 Django Generic CBV 中做同样的事情。
基于函数的视图
def form_handling(request):
if request.method == "POST":
form = SimilarStore(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('...')
else:
form = SimilarStore()
...
基于类的视图
class SimilarStoreCreateView(CreateView):
model = SimilarStore
form_class = SimilarStoreForm
template_name='cms/similarstore_new.html'
success_url=reverse_lazy('cms:similarstore')
def form_valid(self, form):
form = SimilarStoreForm(self.request.POST, self.request.FILES)
form.save()
return redirect(self.get_success_url())
def form_invalid(self, form):
form = SimilarStoreForm()
...
我对如何在 Django Generic CBV 中检查 request.method 是 POST 还是 GET 感到困惑。我知道 Django 常规 CBV 支持 get() 和 post()。但是,在通用视图中,没有 post()。在 Django Generic 中我应该如何处理 POST 请求?
另外,我的 CBV 代码会引发错误 'SimilarStoreForm' object has no attribute 'cleaned_data'。这是为什么呢?
【问题讨论】:
标签: django