私はあなたと同じニーズを持っていたと思います-オブジェクトの単純で単純な辞書表現が欲しかったのです。(私が書いている時点で)投稿された他の回答ではそれが得られず、シリアライザーは目的には役立ちますが、不要な追加情報と不便な構造を含む出力を生成します。
確かにハックですが、これは私に良いマイレージを与えています:
from django.core import serializers
def obj_to_dict(model_instance):
serial_obj = serializers.serialize('json', [model_instance])
obj_as_dict = json.loads(serial_obj)[0]['fields']
obj_as_dict['pk'] = model_instance.pk
return obj_as_dict
リストでdjango_model_objectをラップし、jsonを解析した後にアイテム0にアクセスする必要があります。これは、何らかの理由で、シリアライザーがモデルオブジェクトのイテラブルのみをシリアライズできるためです(奇妙な)。
あらゆる種類の外部キー フィールドを処理するには、追加のギアが必要です。それを記述する必要が生じた場合は、投稿することがあります (他の誰かが最初に編集しない限り!)。
とりあえずHTH。