AssertionError:使用名为"pk“的URL关键字参数调用视图blabla。修复您的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)发布于 2017-05-29 12:35:42
您的代码无法工作,因为您在类级别上引用了request对象,而且它并不存在:它是在实例级别上创建的。但你根本不需要它,只需做:lookup_field = 'id'
https://stackoverflow.com/questions/44242354
复制相似问题