J'ai ce modèle sérialiseur:Filtre imbriqué sérialiseur django-cadre reste
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')
Et vues:
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
Je veux la liste Modèle de devis et le modèle QuoteTemplate. Toutefois, lors de l'affichage du modèle de devis, je souhaite ignorer les enregistrements qui n'ont pas de client et lors de l'affichage du modèle QuoteTemplate, je ne souhaite pas filtrer. Comment puis-je y parvenir avec mes vues actuelles?
À l'heure actuelle, mes listes sont filtrées dans les deux cas.
Edit:
Je l'ai déjà essayé d'utiliser serializers.SerializerMethodField() mais j'obtiens des erreurs sur mon create() et mise à jour() fonctions en essayant de pop informations sur validated_data
.
Le code est correct, ce n'est pas clair ce que 'all_for (self.request.user)' fait peut-être la cause de ce comportement. – Ramast
Je veux juste que le filtre soit ignoré lorsqu'il est utilisé comme imbriqué. –
Peut-être que cela expliquerait mieux si vous avez fourni les modèles. Vous ne fournissez que ModelSerializer et deux ViewSet – Ramast