我有一个视图,使用一个基于类的通用视图(源自django.views.generic.DetailView),具有自定义窗体:
from django.views.generic import DetailView
class MyDetailView(DetailView):
model=MyModel
def get_object(self):
object = MyModel.objects.get(uuid=self.kwargs['uuid'])
def get_context_data(self, **kwargs):
form = MyForm
context = super(MyDetailView, self).get_context_data(**kwargs)
context['form'] = form
return context
Run Code Online (Sandbox Code Playgroud)
我希望表单提交的POST转到与GET相同的URL.是否可以修改此视图代码,以便它也可以响应POST?如果是这样,怎么样?我是否需要从另一个mixin类继承?添加以处理表单数据的方法的名称是什么?
或者,对于此方案,在同一URL上响应POST是一个坏主意?
(注意:表单不会修改正在显示的MyModel对象.而是用于创建不同类型的模型对象,因此UpdateView不太适合).
Ber*_*ant 10
目前还不是很清楚你想要对你的POST请求做什么,但是使用它django.views.generic.UpdateView代替可能是有意义的DetailView- 因为它还为你提供了一些处理表单处理的方法.
要将POST请求的处理添加到详细信息视图,post()方法就足够了!
查看 Django 代码,post() 方法应如下所示:
def post(self, request, *args, **kwargs):
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4686 次 |
| 最近记录: |