0

Я использую URLconfig. Могу ли я создать два URL (для POST и GET), которые вызывают один и тот же вид?Django Создать несколько URL-адресов, которые называют один и тот же вид для POST и GET

url(r'^persons/(?P<id_person>P\.\d+)/forms/(?P<formacronym>\w+)/$', views.PersonFormView.as_view()), 
url(r'^persons/(?P<id_person>P\.\d+)/forms/(?P<id_form>[\w.]+)/$', views.PersonFormView.as_view()) 

бы называть эти методы в представлении с уважением:

def get(self, request, id_person, formacronym, format = None): 
    form = Form.get_form_for_person(self, id_person, formacronym) 

def post(self, request, id_person, id_form, format = None):   
    form = Form.save_form(self, id_person, id_form) 

Путь это установка в настоящее время не работает. Не уверен, как действовать дальше. Спасибо за любые советы.

ответ

0

Если вы используете CBV, вы можете создать один URL-адрес, который указывает на ваш вид. Затем в зависимости от метода запроса будет выполнен соответствующий метод в классе.

from django.views.generic import View 

class FooView(View): 

    def get(self, request, *args, **kwargs): 
     # only gets called when request.method == "GET" 
     assert(request.method == "GET") # True 

    def post(self, request, *args, **kwargs): 
     # only gets called when request.method == "POST" 
     assert(request.method == "POST") # True 
Смежные вопросы