Ich verwende den folgenden Serializer in den meisten requests
wie GET
, POST
etc:Wie ändert man das Feld-Mapping im Django-Restframework-Serializer, der verschachtelte Serializer verwendet, dynamisch?
class PrescriptionSerializer(serializer.ModelSerializer):
tags = TagSerializer()
setting = SettingSerializer()
Aber ich setting
Feld SettingUpdateSerializer()
if request.action
ist UPDATE
(= PUT/PATCH
) zuordnen möchten. Ohne zu tauchen PrescriptionGetSerializer
und PrescriptionUpdateSerialzer
und sie entsprechend zu verwenden, gibt es eine Möglichkeit, Serializer-Schachtelfeld zu anderen Serialisierer dynamisch zuzuordnen, wie unten?
class PrescriptionSerializer(serializer.ModelSerializer):
tags = TagSerializer()
setting = SettingUpdateSerializer()
ich aber über self.fields.pop
auf __init__
verwenden, aber auf diese Weise ist es nur möglich, durch verschiedene unterschiedliche Feldnamen wie update_setting
und get_setting
verwenden.
Vielen Dank für die Hilfe im Voraus.
Alter, du bist ein Lebensretter. Ich kann nicht glauben, dass ich nicht über 'self.fields ['setting'] = SettingUpdateSerializer()' nachgedacht habe. Ich werde versuchen, die 'get_serializer_class' zu verwenden, wenn eine ähnliche Situation auftritt. Ich habe zu viel Legacy-Code, um das ganze nochmal neu schreiben zu können. Danke vielmals. – Bossam
@Bossam kein Problem, ich bin froh, dass es dir geholfen hat :) –