0

したがって、モデル以外の値でモデルをシリアル化したいという状況があります。モデルのシリアル化 [クエリセットと単一モデル自体の両方] を取得しましたが、それをモデル以外の値と組み合わせようとすると問題があるようです。たとえば、リクエストのUser一部を JSONify したいstatusmodel_to_JSONmodel=>JSON であると仮定します。

# it messes the 'user' json by further escaping it, 
#which becomes unparseble on client since its a string now
dumps({ 'user': model_to_JSON(user_obj), 'status': 'ok'})

loads最初に変換されたモデル json に対して行うことで、いくつかのハックを行うことができます。しかし、それは非常にハックな方法であり、ダンプに多くの時間が浪費されます=>ロード=>ダンプ 2番目のオプションは、個別のダンプを実行することによる文字列の連結です。 ',' を含む右端の文字列。

Django シリアライザーは、モデル/クエリセット向けに非常に具体的に記述されているため、それらを実際にオーバーライドすることはできません。

誰かが以前にこの問題に直面したことがありますか?

4

1 に答える 1

0

Django Full Serializersを見ることができます。これは、私がずっと前に使用したアプローチでした。

もう 1 つの方法は、単純に独自のシリアル化関数を作成することです。これにより、属性名を渡すことができます (シリアル化時に検索されます)。私もこれをやったことがあります。このアプローチを取る場合model_to_dictは、事前シリアル化を行う django function が既に存在することに注意してください。

3 番目の方法は、django のフォームをシリアル化の中間として使用することです。これは、ユーザーからデータを逆シリアル化する場合にも役立ちます。

于 2013-02-11T03:12:00.277 に答える