2016-07-12 4 views
1

Ich habe das django Rest Framework doc gelesen und ich konnte nicht finden, wie Parameter an die init Methode eines Serialisierers übergeben werden. In einem regulären Ansicht kann ich wie folgt aus:DJango REST Framework - wie Parameter an Serialisierer übergeben werden __init__

def get_form_kwargs(self, *args, **kwargs): 
    form_kwargs = super(ContentCreateView, self).get_form_kwargs(*args, **kwargs) 
    form_kwargs['delivery_id'] = self.kwargs['delivery_id'] 
    return form_kwargs 

Möchten Sie wissen, wie ich tun kann, dass ein CreateAPIView/UpdateAPIView mit?

Danke für jede Hilfe

+0

Ich habe keine Verweise auf die Hand, aber IIRC das ist nicht wirklich möglich, ich denke, vielleicht möchten Sie Sachen an den Serializer-Kontext übergeben - ich finde mich die Anfrage aus dem Kontext in Serialisierer viel herausziehen, und im Allgemeinen ist es ein wenig klobig und sie sind sich bewusst, dass es nicht ideal ist. – Steve

Antwort

0

DRF hat Lösungen rund um diese.

Entweder Sie benötigen delivery_id Instanz zu speichern, wobei in diesem Fall werden Sie es direkt an the serializer's save geben und es in der create/update bekommen ‚s validated_data

Entweder Sie benötigen es für die Validierung, in dem Fall, dass Sie‘ Übergeben Sie es an die serializer's context, die Sie in den Serializer/Felder als self.context['request'] zum Beispiel verwenden können. Sie müssen dafür die get_serializer_context der Ansicht überschreiben.