У меня есть viewet и некоторые методы в нем, и getchedule является одним из них.Django URL to View mapping
def getschedule(self, request):
В urls.py если сопоставить метод getschedule как этот
url(r'^event/(?P<pk>[0-9]+)/getschedule/$', EventSingleViewSet.getschedule, name='event-schedule'),
я получаю эту ошибку "getschedule() отсутствует 1 требуется позиционная аргумент: 'запрос' "
Но если я сделаю картографию следующим образом,
url(r'^event/(?P<pk>[0-9]+)/getschedule/$', event_getschedule, name='event-schedule'),
......
event_getschedule = EventViewSet.as_view({
'get': 'getschedule'
}, renderer_classes=[JSONRenderer])
это работает и дает мне ответ.
Я не понимаю, как запрос передается методу во втором подходе. Нужна помощь в понимании этого.
Я также хотел бы знать, как я мог сделать свой первый подход.
Что такое просмотр? Похоже, вы смешиваете [на основе класса] (https://docs.djangoproject.com/en/dev/topics/class-based-views/) и [процедурный] (https://docs.djangoproject.com/en/dev/themes/http/views/# a-simple-view). – solarissmoke
@solarissmoke - это представление, которое не обрабатывает HTTP-запросы, но позволяет читать и обновлять. Это часть [django-rest-framework] (http://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/). –
Я думаю, вы должны попробовать это в 'urls.py': ' from .views.EventSingleViewSet import getschedule как getEventSchedule', а затем использовать его как одно имя переменной без оператора точки вместо «EventSingleViewSet.getschedule». Если это сработает, тогда это будет только принятый синтаксис 'urlpatterns', который будет на вашем пути. –