Ich habe einen Serializer, die eine Liste von Strings empfängt und sendet. Diese Zeichenfolgen sind intern Modellinstanzen.Benutzerdefinierte Verwandte Feld
Im Serialisierer, wenn ich eine neue types
Liste erhalte, muss ich prüfen, ob der Typ existiert, wenn vorhanden, assoziiere es mit dem anderen Modell andernfalls erstelle eine neue Instanz und assoziiere sie.
Ich kann es eine benutzerdefinierte mit RelatedField
class TypeRelatedField(serializers.StringRelatedField):
def to_internal_value(self, data):
try:
return Type.objects.get(name=data)
except Type.DoesNotExist:
return Type.objects.create(name=data)
und in dem Serializer, die die Typen Liste
types = TypeRelatedField(many=True, required=False)
, so dass, wenn der Typ es, erstellt sonst zurückgegeben wird existiert erhalten. Ich bin mir nicht sicher, ob es der richtige Ort ist, dies zu tun, vielleicht sollte ich tue dies in der create
und update
Methode?