Ich entwickle eine API mit Django Rest Framework, und ich möchte die Felder dynamisch aus einem Serializer entfernen. Das Problem ist, dass ich sie abhängig vom Wert eines anderen Feldes entfernen muss. Wie könnte ich das tun? Ich habe einen Serializer wie:Wie man Felder dynamisch aus der Serializer-Ausgabe entfernt
class DynamicSerliazer(serializers.ModelSerializer):
type = serializers.SerializerMethodField()
url = serializers.SerializerMethodField()
title = serializers.SerializerMethodField()
elements = serializers.SerializerMethodField()
def __init__(self, *args, **kwargs):
super(DynamicSerliazer, self).__init__(*args, **kwargs)
if self.fields and is_mobile_platform(self.context.get('request', None)) and "url" in self.fields:
self.fields.pop("url")
Wie Sie sehen können, bin ich schon das Feld „url“ Entfernen je nachdem, ob die Anforderung von einer mobilen Plattform durchgeführt worden ist. Aber ich möchte das Feld "elements" abhängig vom "type" -Wert entfernen. Wie soll ich das machen?
Vielen Dank im Voraus
Vielen Dank, das funktioniert wie ein Zauber – FVod