Ich möchte einige Argumente DRF Serializer Klasse von Viewset passieren, also habe ich versucht, dieses:Pass zusätzliche Argumente Serializer Klasse in Django Rastrahmen
class OneZeroSerializer(rest_serializer.ModelSerializer):
def __init__(self, *args, **kwargs):
print args # show values that passed
location = rest_serializer.SerializerMethodField('get_alternate_name')
def get_alternate_name(self, obj):
return ''
class Meta:
model = OneZero
fields = ('id', 'location')
Ansichten
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer(realpart=1)
#serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
Grundsätzlich möchte ich einen Wert basierend auf Querystring von Ansichten zu Serializer-Klasse übergeben und dann werden diese Felder zugeordnet.
Diese Felder sind nicht in Model tatsächlich dynamisch erstellte Felder enthalten.
Gleicher Fall in dieser Frage stackoverflow, aber ich kann die Antwort nicht verstehen.
Kann mir jemand in diesem Fall helfen oder mir bessere Optionen vorschlagen.
@PauloScardine können Sie mir einfaches Beispiel oder einen Link, wo ich Hilfe bekommen kann? Ich bin neu im Django, deshalb kann ich deine Worte nicht bekommen. –
Die Antwort auf die Frage, auf die Sie verweisen, ist richtig. Lesen Sie die Dokumentation zur Methode "get_serializer" und überschreiben Sie sie, um eine benutzerdefinierte Instanz des Serializers zurückzugeben. –
mögliches Duplikat von [Dynamisch modifizierende Serializerfelder in Django Rest Framework] (http: // stackoverflow.com/questions/18696403/dynamisch-modifizieren-serializer-felder-in-django-rest-framework) –