Использование общих представлений с глаголами HTTP
Я пытаюсь смешать HTTP глаголы со встроенными в Django родовыми представлениями на основе классов, я понимаю, что хорошим шаблоном (поправьте меня, если это не так) является сохранение Url'ов типа app/pets/ и использование HTTP глаголов для определения того, что делать (GET, POST/create, PUT/update, DELETE/delete, etc) вместо чего-то вроде app/pets/add или app/pets/delete, как показано в документации Django при использовании генеративных представлений с формами
Так что я попробовал что-то вроде этого:
urls.py:
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"),
Views.py
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
но я получаю ошибку 405 method not allowed (и я думаю, что это не очень хорошая практика).
я также попробовал следующее (определяя PetListView так же, как и выше):
class Pet(LoginRequiredMixin, View):
login_url= "/vet/login/"
def get(self, request):
return HttpResponse(PetListView.as_view())
Но это просто выводит объект на экран.
Я новичок в Django и не знаю, какой подход лучше использовать для этого, используя представления Django generic, так как это сокращает много кода для CRUD операций