我有一个关于字段查询集限制的问题。
我有以下序列化器:
class UserProfileSrializer(serializers.Serializer):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop("user", None)
serializers.Serializer.__init__(self, *args, **kwargs)
boats = serializers.SlugRelatedField(many=True, source="boatmodel_set", slug_field="boat_name",
read_only=True)
articles = serializers.StringRelatedField(many=True, source="article_set", read_only=True)
comment = serializers.StringRelatedField(many=True, source="get_comments", read_only=True)
每个字段代表不同的模式实例。
父模型-USER 辅助模型1 – BoatModel,针对用户模型遍历为“ boatmodel_set” 次要模型2 –文章,针对USER模型遍历为“ article_set”
观看次数
class UserProfileView(views.APIView):
def get(self, request, format=None, **kwargs):
user = self.request.user
serializer = serializers.UserProfileSrializer(user)
data = serializer.data
#data["boats"] = sorted(data["boats"])[:10] - need something better as it overloads DB
#data["articles"] = data["articles"][:10]
return Response(data)
问题是,我是否不想序列化并呈现与用户有关系的“ boatmodel_set”和“ article_set”中的所有条目(可能是数百个),但是我想将它们限制为“ [:10]个条目”只在“ article_set”条目中包含“ boatmodel_set”和[:10]条目,并且仍将这些字段保持为read_only,并且在没有可调用的source()和methodfield的情况下也是可能的。可以在某处覆盖它吗?
谢谢
P.S。注释字段-请从范围-不同主题中排除。
答案 0 :(得分:1)
您可以使用序列化器字段的get方法并自行限制它们。这是您的操作方式:
class under test