Django类基于post-only视图

sud*_*har 15 django django-views django-class-based-views

很抱歉,如果这是一个微不足道的问题,但我一直在寻找一段时间,并且无法找到一个好的实现.

有人可以通过继承任何通用视图来提供如何在Django中实现仅后视图(可以处理文件上传)的示例吗?

我想创建一个处理所有博客帖子评论创建逻辑的端点.评论表格嵌入在我的博客页面上,因此,这些数据将被发送到网址POST.

Ala*_*air 24

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
    ...
Run Code Online (Sandbox Code Playgroud)

或者,您可以子类化View,并编写自己的post方法.

class CommentView(View):

    def post(self, request):
        ...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,GET请求将返回HttpResponseNotAllowed响应,因为您尚未定义get处理GET请求的方法.


And*_*ser 5

你可以尝试类似的东西:

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)
Run Code Online (Sandbox Code Playgroud)