Django serialisieren Fremdschlüsselobjekte

  • Serialize Django-Modell mit Fremdschlüssel-Modelle
  • Serialisierung von Fremdschlüsselobjekten in Django
  • Bekomme Fremdschlüsselobjekte in einer einzigen Abfrage – Django

Es gibt ein paar Fragen, die das gleiche schon fragen. Aber sie sind ab 2010 und es hat mir nicht so viel geholfen Also ich finde es vielleicht schon seit 2010 ein Update auf diese Front?

Auf google fand ich diesen Link , der die Verwendung von natürlichen Schlüsseln erklärt . Allerdings ist mein Problem Bedenken, Fremdkörper aus django.contrib.auth.models.User damit es nicht hilft.

  • Installieren von Kissen, immer -Wunused-Kommandozeilen-Argument-Hard-Fehler-in-Zukunft
  • Kann to_representation () in Django Rest Framework auf die normalen Felder zugreifen
  • Getting "Fehler beim Laden des MySQLdb-Moduls: Kein Modul namens MySQLdb" - hab bisher gebuchte Lösungen ausprobiert
  • Wie schreibe ich Django REST Api ohne Modell, um eine Datei mit Requests zu senden
  • Warum verwaltet man die Ausführung des Skripts zweimal, wenn man es benutzt, wenn __name__ == "__main__"
  • Holen Sie sich den Datenbankcursor von Djangos RawQuerySet
  • Mein Problem ist wie folgt. Ich möchte das QuerySet serialisieren, damit ich die Fremdschlüsselobjekte auch bekomme, weil ich es als JSON an den Client weitergeben möchte. Der serializer von django.core macht das nicht. Also in meinem Fall zu einfach das Problem hatte ich ein weiteres Feld auf das Modell hinzugefügt, um den Wert zu enthalten, den ich aus dem Fremdobjekt benötige. Aber es gibt aber auch redundante Daten ein.

    Mein Beispielmodell enthält es den username den ich gern entfernen möchte und stattdessen den Fremdschlüssel bekomme.

      user = models.ForeignKey(User) username = models.CharField(max_length=100, null=False) 

    2 Solutions collect form web for “Django serialisieren Fremdschlüsselobjekte”

    Ein potenzieller Weg um diese ist es, Ihr eigenes Wörterbuch-Objekt auf der Grundlage der Rückkehr eines Quarysets zu konstruieren. Du würdest so etwas machen:

     queryset = Model.objects.all() list = [] #create list for row in queryset: #populate list list.append({'title':row.title, 'body': row.body, 'name': row.user.username}) recipe_list_json = json.dumps(list) #dump list as JSON return HttpResponse(recipe_list_json, 'application/javascript') 

    Sie müssen json importieren, damit dies funktioniert.

     import json 

    Sie könnten Django REST Frameworks Serializer verwenden .

    Python ist die beste Programmiersprache der Welt.