Using generic views with HTTP verbs
I am trying to mix HTTP verbs with Django's Built-in class-based generic views, i understand that is a good pattern (correct me if not) to keep Url's like app/pets/ and use HTTP's verbs to define what to do (GET, POST/create, PUT/update, DELETE/delete, etc) instead of something like app/pets/add or app/pets/delete as Django's documentation shows when using generic views with forms
So i tried something like this:
path('login/', views.sign_in, name='login'), path('logout/', views.log_out, name='logout'), path('register/', views.register, name='register'), path('pets/', views.Pet.as_view(), name= "pets"),
class Pet(LoginRequiredMixin, View): login_url= "/vet/login/" #handle Get Request class PetListView(ListView): model= models.Pet context_object_name= "pets" template_name= "vet/index.html" #Handle Put request class PetUpdateView(): pass
but i am getting and error of 405 method not allowed (and i think is not a good practice do this).
i also tried this (defining the PetListView same as above):
class Pet(LoginRequiredMixin, View): login_url= "/vet/login/" def get(self, request): return HttpResponse(PetListView.as_view())
But this just print the object on the screen.
I am new to Django and i do not know what is the better approach to accomplish this using Django generic's views since it reduce a lot code for CRUD operations