2016-12-19 6 views
1

In Django, wenn Sie wie folgt vorgehen:Django erhalten queryset als serialisierte

print(serializers.serialize(MyModel.objects.all())) 

Es wird ein JSON-String in diesem Format schön Ausgabe:

{ 
    {'pk' : 1, fields : {'fieldname1' : 'value1, 'fieldname2', 'value2'}, 
} 

Dies nützlich ist, wenn man es zu tun mit einer 'generischen' Anwendung, die mit jedem Modell funktioniert, ohne den Namen des PK-Felds oder die Liste der nicht-versteckten nicht-relationalen Feldnamen zu kennen.

Für die Frage, wie kann ich das tun, aber in Python, wie ein Wörterbuch? Ich könnte json.loads die Serializer-Ausgabe, aber das ist einfach nur dumm.

Am nächsten an, was ich versuche ist die .values() QuerySet Methode zu erreichen, aber es listet nicht die pk Feld

Antwort

2

Eigentlich zu serialisiert serialize das Format als ersten Parameter nimmt. Normalerweise ist dies 'json' oder 'xml', aber Sie können auch 'python' verwenden, das in ein Standard-Python-Diktat konvertiert.

+0

Das ist gut zu wissen, sollte die Dokumentation wirklich sagen, dass, obwohl ... – Mojimi