对不起,如果这是一个微不足道的问题,但我已经搜索了相当一段时间,并没有找到一个好的实现。
有人能提供一个例子,说明如何通过子类化任何泛型视图来实现Django中的后置视图(它可以处理文件上传)吗?
我想要创建一个端点来处理所有博客帖子注释创建逻辑。注释表单嵌入到我的博客页面中,因此,这些数据将以POST
的形式发送到url。
发布于 2016-04-26 04:41:34
View
类具有一个http_method_names
属性,该属性列出视图将接受的HTTP方法。
因此,您可以子类任何您喜欢的泛型视图(例如,CreateView
),并设置http_method_names
,以便只允许POST请求。
from django.views.generic.edit import CreateView
class CommentCreateView(CreateView):
http_method_names = ['post']
model = Comment
...
或者,您可以子类View
,并编写自己的post方法。
class CommentView(View):
def post(self, request):
...
在这种情况下,GET请求将返回一个HttpResponseNotAllowed
响应,因为您还没有定义处理GET请求的get
方法。
发布于 2016-04-26 00:55:48
你可以尝试这样的方法:
class MyView(TemplateView):
template_name = 'my_template.html'
def post(self, request, **kwargs):
my_data = request.POST
# do something with your data
context = {} # set your context
return super(TemplateView, self).render_to_response(context)
发布于 2016-04-26 01:02:45
来自文档
分派会查看请求,以确定它是否是GET、POST等,并在定义为或引发HttpResponseNotAllowed的情况下将请求转发给匹配方法HttpResponseNotAllowed。
因此,从本质上说,任何只定义POST
方法的基于类的视图都只允许POST请求。
https://stackoverflow.com/questions/36859618
复制