Python Django url中的多个PK
我目前正在尝试使用Django Rest框架构建一个API。目前,我希望能够在一个url中包含多个PK,但尝试时出现错误: django.core.exceptions.ImpropertlyConfigured: “^video/(?P[0-9]+)/quick/(?P[0-9]+)/list/$”不是有效的 正则表达式:将组名“pk”重新定义为组2;是 第1组第31位 以下是我的网址:Python Django url中的多个PK,python,regex,django,django-rest-framework,Python,Regex,Django,Django Rest Framework,我目前正在尝试使用Django Rest框架构建一个API。目前,我希望能够在一个url中包含多个PK,但尝试时出现错误: django.core.exceptions.ImpropertlyConfigured: “^video/(?P[0-9]+)/quick/(?P[0-9]+)/list/$”不是有效的 正则表达式:将组名“pk”重新定义为组2;是 第1组第31位 以下是我的网址: url(r'^video/(?P<pk>[0-9]+)/quiz/(?P<pk>[
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'),
更新的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'),
新错误:
无法使用视图名称解析超链接关系的URL
“测验清单”。您可能未能将相关模型包括在中
您的API,或未正确配置上的查找\u字段
属性
这个领域
必须为命名的捕获组指定唯一的名称
url(r'^video/(?P<pk1>[0-9]+)/quiz/(?P<pk2>[0-9]+)/list/$',
views.QuizList.as_view(),
name='quizzes-list'),
例:
我还是不明白。我是新来的。我发表了我的观点。我该如何为他们实现相应的pk*呢?我更新了所有内容,但现在得到了一个新的错误,我在上面发布了这个错误。我对这个错误感到困惑,因为“测验列表”列在url名称中,而我没有查找字段。有什么方向吗?感谢所有的帮助。@Ryan113看一看
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)
url(r'^video/(?P<pk1>[0-9]+)/quiz/(?P<pk2>[0-9]+)/list/$',
views.QuizList.as_view(),
name='quizzes-list'),
pk1 = kwargs.get('pk1', None)
pk2 = kwargs.get('pk2', None)
# quiz
class QuizList(generics.ListCreateAPIView):
queryset = Quizzes.objects.all()
serializer_class = QuizSerializer
def get(self, *args, **kwargs):
pk1 = kwargs.get('pk1', None)
pk2 = kwargs.get('pk2', None)
print pk1
print pk2
return super(QuizList, self).get(*args, **kwargs)