Ich plane eine Seite mit Django und Tastypie für die REST API, und Mir fällt es schwer, den "richtigen" Weg zu finden untergeordnete Ressourcen in einer zurückgegebenen Ressource.
Als Sandbox habe ich eine kleine App mit einem Ticket-Modell und einem TicketComment erstellt Modell, wo Kommentare zu einem Ticket gehören. Ich schaute auf das Tastypie Cookbook Rezept auf verschachtelten Ressourcen (http://django-tastypie.readthedocs.org/en/latest/cookbook.html#nested-resources), aber es fällt mir schwer zu verstehen, warum ich das tun sollte. Der Code unten verwendet django.forms.models.model_to_dict (), um die Kommentare in das Ticket zu übernehmen, aber ich denke, da muss irgendwo ein "Gotcha" sein.
Gibt es einen Grund, warum ich nicht tun sollte, was ich gerade tue? Außerdem, gibt es ein ein saubereres Gefühl dafür als das, was im Kochbuch steht?
Modelle sind wie folgt:
%Vor%Ressourcen sind wie folgt:
%Vor%Die Ausgabe ist wie folgt:
%Vor%Können Sie Ihre Lösung posten?
Ich habe die gleichen Anwendungsfälle / Modelle (eine Fremdschlüsselbeziehung, die in der "untergeordneten Tabelle" eingerichtet wurde, die auf die übergeordnete Tabelle verweist), kann sie aber nicht auflösen.
Die Lösung, die ich gesehen habe, besteht darin, diese Zeile zu Ihrer TicketResource auf der Klassenebene hinzuzufügen, die NICHT in der Meta-Unterklasse enthalten ist:
%Vor%Dann fügen Sie das möglicherweise auch zu TicketCommentResource hinzu, wiederum auf Klassenebene:
%Vor%Aber ich erhalte immer den Fehler, dass meine übergeordnete Objekt-Ressource (in Ihrem Beispiel TicketResource) nicht das Attribut "ticket" hat, welches der zweite an ToManyField gesendete Begriff ist.
Ich habe versucht, viel damit zu spielen, aber ich kann nicht scheinen, die gewinnende Kombination zu bekommen. Die Lösung, die du ursprünglich gepostet hast, funktioniert, aber wie du selbst darauf hingewiesen hast, ist es nicht ideal.
Danke!