我在应用程序中使用模型管理器来完成繁重的工作。能够很好地用于网络版本,但是查询序列化难以通过API将数据移至移动应用中。
模型管理器可以很好地用于基于Web的界面。尝试序列化,以便数据可以进入React Native for mobile app。覆盖查询集似乎是解决之道。
这是序列化器中的代码:
class UserBeltsSerializer(serializers.ModelSerializer):
class Meta:
model = UserBelts
fields = ('__all__')
这是.api中的代码:
class SingleUserBeltViewSet(generics.ListAPIView):
permission_classes = [
permissions.IsAuthenticated,
]
serializer_class = UserBeltsSerializer
def get_queryset(self):
beltlist = UserBelts.objects.all_belts(user=self.request.user)
return beltlist
错误信息如下:
AttributeError at /api/singleuserbelts
Got AttributeError when attempting to get a value for field `user` on serializer `UserBeltsSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `str` instance.
Original exception text was: 'str' object has no attribute 'user'.
答案 0 :(得分:0)
花了好几个小时,直到我发现对此内容晦涩难懂。我的模型管理器没有返回纯QuerySet(这是一个QuerySet,其中包含Web版本正在使用的一些其他信息)。一旦从通常返回的对象中解析出QuerySet,错误就消失了。