2012-04-05 26 views
1

Mein Verständnis, warum save_m2m in einer tastypie Ressource benötigt wird, ist noch nicht klar. Wenn ich in einem POST nur Daten posten möchte, die für die Erstellung eines Modells relevant sind, und keine Informationen zum m2m-Objekt senden, muss ich noch eine save_m2m-Datei erstellen. Warum wird es benötigt? Was passiert, wenn ich save_m2m überschreibe, um nichts zu tun? Es scheint gut zu funktionieren und meine Ressource ist erstellt, ich bin mir nicht sicher, welche versteckten Implikationen das haben könnte. Könnten Sie das bitte kommentieren?tastypie: save_m2m

Antwort

3

Wenn Sie keine Felder haben, die mit is_m2m=True markiert sind, wird die Methode eigentlich gar nichts machen. Von tastypie Docstrings in save_m2m:

""" 
Handles the saving of related M2M data. 

Due to the way Django works, the M2M data must be handled after the 
main instance, which is why this isn't a part of the main ``save`` bits. 

Currently slightly inefficient in that it will clear out the whole 
relation and recreate the related data as needed. 
""" 

Innerhalb der Ressourcen des tastypie save_m2m Methode überprüft, für Felder mit is_m2m auf True gesetzt, wenn keiner es tun, nur nichts gefunden, so dass, wenn Ihre Ressourcenklasse keine m2m hat und alle anderen Ressourcen erben nicht davon können Sie die save_m2m Methode überschreiben, nichts zu tun.

Sie werden tatsächlich eine Schleife vor tastypie (eine kleine Beschleunigung woohoo!;)) Sein.

Verwandte Themen