В настоящее время я пытаюсь создать API с помощью Django Rest Framework. В настоящее время я хочу, чтобы иметь возможность иметь несколько ПКС в одном URL, но когда я пытаюсь я получаю сообщение об ошибке:Django multiple pks in url
django.core.exceptions.ImproperlyConfigured: "^video/(?P[0-9]+)/quiz/(?P[0-9]+)/list/$" is not a valid regular expression: redefinition of group name 'pk' as group 2; was group 1 at position 31
Вот мои URLS:
url(r'^video/(?P<pk>[0-9]+)/quiz/(?P<pk>[0-9]+)/list/$',
views.QuizList.as_view(),
name='quizzes-list'),
url(r'^video/(?P<pk>[0-9]+)/quiz/(?P<pk>[0-9]+)/detail/$',
views.QuizDetail.as_view(),
name='quizzes-detail'),
я собираюсь иметь несколько викторин для видео и хотите иметь возможность связаться с ними через определенный pk в моем URL-адресе.
Есть ли простой способ сделать это или не хватает надлежащего способа сделать это?
Спасибо
Edit * Вот мое мнение:
class VideoList(generics.ListCreateAPIView):
queryset = Video.objects.all()
serializer_class = VideoSerializer
class VideoDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Video.objects.all()
serializer_class = VideoSerializer
# quiz
class QuizList(generics.ListCreateAPIView):
queryset = Quizzes.objects.all()
serializer_class = QuizSerializer
class QuizDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Quizzes.objects.all()
serializer_class = QuizSerializer
Обновлено URLs:
###
# Quiz urls
###
url(r'^video/(?P<pk1>[0-9]+)/quiz/(?P<pk2>[0-9]+)/list/$',
views.QuizList.as_view(),
name='quizzes-list'),
url(r'^video/(?P<pk1>[0-9]+)/quiz/(?P<pk2>[0-9]+)/detail/$',
views.QuizDetail.as_view(),
name='quizzes-detail'),
Обновлены просмотров:
class QuizList(generics.ListCreateAPIView):
queryset = Quizzes.objects.all()
serializer_class = QuizSerializer
def get(self, request, *args, **kwargs):
pk1 = kwargs.get('pk1', None)
pk2 = kwargs.get('pk2', None)
print(pk1)
print(pk2)
return self.list(request, *args, **kwargs)
Новая ошибка:
Could not resolve URL for hyperlinked relationship using view name "quizzes-list". You may have failed to include the related model in your API, or incorrectly configured the
lookup_field
attribute on this field.
Я все еще не понимая. Я новичок в этом. Я опубликовал свои мнения. Как мне реализовать соответствующий pk * для них? – Ryan113
вы можете получить значения pk * для любых встроенных методов, таких как get, post .. –
Я обновил все, но теперь получаю новую ошибку, которую я разместил выше. Я запутался в ошибке, потому что «список опросов» указан в имени URL-адреса, и у меня нет поля lookup_field. Любое направление? Цените всю помощь. – Ryan113