繁体   English   中英

Django中不允许使用方法(405 POST)

[英]Method Not Allowed(405 POST) in Django

这是我的index.html

<form action="{% url 'request:my_shipment' %}" method="POST">
    {% csrf_token %}
    <input type="submit" value="My shipment"/>
</form>

这是我的urls.py

app_name = 'request'
urlpatterns = [
    path('', request_views.IndexView.as_view(), name='index'),
    path('create_request/', request_views.RequestView.as_view(), name="request"),
    path('request/<int:pk>', request_views.UpdateReceiveView.as_view(), name='receive'),
    path('my_shipment/', request_views.ListMyShipment.as_view(), name='my_shipment')
]

这是我的views.py

class ListMyShipment(ListView):
    template_name = 'request/my_shipment.html'

    def get_queryset(self):
        return models.Shipment.objects.filter(shipper_id=self.request.user.id)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['user_list'] = models.User.objects.all()
        context['user_id'] = self.request.user.id
        return context

当我单击“ My shipment按钮时,这是一个响应:

Method Not Allowed (POST): /my_shipment/

我正在使用Django 2.0.5版本

在基于Django类的视图中,您必须编写诸如get,post,put等方法。除非编写了post函数,否则将无法在post方法中调用该视图。

class ListMyShipment(View):
    def post(self, request, **kwargs):
         #your Code For post, **kwargs, request are not essential

您可以在此处了解有关基于类的视图的更多信息发布方法, 基于类的视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM