Django kwarg总是'pk'吗?

时间:2019-03-09 20:17:58

标签: python regex django django-rest-framework

我正在使用django rest框架开发django应用程序。我正在尝试使用如下网址过滤返回的数据:

router.register(r'^api/rates/(?P<name>\w+)', views.RateViewSet)

这是视图:

def get_queryset(self):
    if 'name' in self.kwargs:
        n = self.kwargs['name']
        return Rates.objects.filter(name=n)

但是无论出于何种原因,第一个kwarg总是被命名为“ pk”。即使我将其设置为正则表达式url中的名称。但是,当我添加带有api / rates / one / two之类的第二个kwarg时,整个内容(一个/两个)将附加到名称键上。难道我做错了什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

您需要设置lookup_field属性。默认为'pk'

lookup_field='name'