Search code examples
pythonpython-3.xdjangodjango-viewsdjango-class-based-views

"GET /store/hello/ HTTP/1.1" 405 0 with Class-Based-Views (Django)


I use Class-Based-Views with "post" method as shown below:

# "store/views.py"

from django.shortcuts import render
from django.views import View

class Hello(View):
    # Here
    def post(self, request):
        return render(request, 'store/index.html')

Then, this is "urls.py" below:

# "store/urls.py"

from django.urls import path
from . import views

app_name = "store"

urlpatterns = [
    path("hello/", views.Hello.as_view(), name="hello"),
]

Then, I got this error below:

Method Not Allowed (GET): /store/hello/
Method Not Allowed (GET): /store/hello/
Method Not Allowed: /store/hello/
Method Not Allowed: /store/hello/
[03/Aug/2022 22:18:45] "GET /store/hello/ HTTP/1.1" 405 0

So, are there any ways to solve this error?


Solution

  • You need to use "get" method as shown below instead of "post" method:

    # "store/views.py"
    
    from django.shortcuts import render
    from django.views import View
    
    class Hello(View):
        # Here
        def get(self, request):
            return render(request, 'store/index.html')
    
        # def post(self, request):
        #     return render(request, 'store/index.html')