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.

  • Wie läuft man django Unit-Tests auf Produktionsdatenbank?
  • Django: Probleme beim Importieren der benutzerdefinierten Python3-Klasse
  • Django persistente Datenbankverbindung
  • Entfernen Sie die Standardauswahl im ForeignKey-Feld von django admin
  • Ein Multi-Table-Vererbung Design generischen in Django
  • Mehrere Formulare und Formulare in CreateView
  • 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.