2016-05-06 11 views
1

Ich habe eine einfache PATCH Methode, wo ich eine Reihe von Parametern zu meinem Objekt Foo, einschließlich eines Parameters new_bar gesendet. Ich möchte zuerst alle anderen Felder patchen und dann new_bar an die aktuellen Daten bar anhängen.Override Partial_Update (PATCH DJANGO)

ich Probleme mit dem Django meine Überschreibung von Teilroute akzeptieren verweigert (Fehler:

response = handler(request, *args, **kwargs) TypeError: decorator() takes exactly 1 argument (3 given))

Wie kann ich meine PATCH-Methode überschreiben diese Parameter um bar auf mein Objekt Nahrung zu akzeptieren, und hängen . es mich in den neuen Daten als Schlüssel new_bar sende nicht Django zu verwirren und in dem Anfang Patch Schritt erwischt.

@detail_route 
    def partial_update(self, request, *args, **kwargs): 
    serializer = FooSerializer(data=request.data, partial=True) 
    serializer.is_valid()   
    instance = serializer.save() 

    bar = self.request.POST.get('new_bar', None) 
    if bar: 
     if len(instance.bar) == 0: 
      instance.bar = bar 
     else: 
      # Append 
      bar = json.loads(bar) 
      old_bar = json.loads(instance.bar) 
      instance.bar = json.dumps(oldbar) 
+0

Können Sie den vollständigen Stack-Trace buchen? – solarissmoke

Antwort

0

Sie die @detail_route Dekorateur nicht brauchen DR F weiß, dass die .partial_update-Methode für PATCH ist.

Verwandte Themen