我目前正在尝试使用Django Rest框架构建一个API。目前,我希望能够在一个url中有多个pk,但是当我尝试时,我得到一个错误:
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
以下是我的网址:
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联系到他们。在
有没有一个简单的方法来做到这一点,或是错过了正确的方法?在
谢谢你
编辑*以下是我的观点:
^{pr2}$更新的URL:
###
# 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.
必须为命名的捕获组指定一个唯一的名称。在
通过访问视图中相应的
^{pr2}$pk*
值例如:
^{3}$相关问题 更多 >
编程相关推荐