我有这样的模型序列:过滤器嵌套串行Django的REST框架
class QuoteTemplateSerializer(serializers.ModelSerializer):
user = serializers.PrimaryKeyRelatedField(read_only=True)
quote = QuoteSerializer()
language_list = serializers.SerializerMethodField()
class Meta:
model = QuoteTemplate
fields = ('id', 'user', 'quote', 'language_list')
而这个观点:
class QuoteViewSet(ModelViewSet):
model = q.Quote
serializer_class = serializers.QuoteSerializer
permission_classes = [
GallantViewSetPermissions
]
def get_queryset(self):
return self.model.objects.filter(client__isnull=False)
class QuoteTemplateViewSet(ModelViewSet):
model = q.QuoteTemplate
serializer_class = serializers.QuoteTemplateSerializer
permission_classes = [
GallantViewSetPermissions
]
def get_queryset(self):
return self.model.objects
我想列出报价型号和QuoteTemplate模型。但是,当列出Quote模型时,我想跳过那些没有客户端的记录,并且当列出QuoteTemplate模型时,我不想过滤。
我怎样才能实现这与我目前的意见?现在我的列表在两种情况下都得到了过滤。
编辑:
我使用serializers.SerializerMethodField已经尝试过(),但是我在尝试蹦出validated_data
信息时,在我的create()和更新错误()函数。
该代码是正确的,它不清楚'all_for(self.request.user)'可能是它的行为原因。 – Ramast
我只是想过滤器作为嵌套使用时被忽略。 –
也许它会解释更好,如果你提供的模型。您只提供ModelSerializer和两个ViewSet – Ramast