【问题标题】:how setup lookup_field?如何设置lookup_field?
【发布时间】:2017-10-29 18:06:53
【问题描述】:

AssertionError:预期视图 blabla 将使用名为“pk”的 URL 关键字参数调用。修正您的 URL 配置,或正确设置视图上的 .lookup_field 属性。

#如果要使用pk以外的对象查找,设置'lookup_field'

好吧,我不想使用 URL 来设置 pk,我想使用 query_params 中的 pk,例如:

request.query_params.get('id', None)

那么如何设置 lookup_field 呢?

已解决 在更新方法上,我们可以覆盖 pk 值

class blabla(generics.CreateAPIView,
            generics.ListAPIView,
            generics.RetrieveAPIView,
            generics.UpdateAPIView):

   def update(self, request, pk = None):
        log.debug("update pk= %s , data = %s" % (pk, str(request.data)))
        pk = request.data.get('id')
        self.kwargs['pk'] = request.data.get('id')
        return super().update(request, pk)

【问题讨论】:

标签: django django-rest-framework


【解决方案1】:

您的代码不起作用,因为您在类级别引用了request 对象,并且它不存在:它是在实例级别创建的。但你根本不需要它,只需: lookup_field = 'id'

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2021-03-05
    • 2020-10-16
    相关资源
    最近更新 更多