1

データベースに格納されるデータは HTML です。この事実を変更することはできませんが、django 管理サイトで非表示にしたいと考えています。

データベースがモデルにデータを入力する前に、モデルをキャプチャして、html エンティティを Unicode に変換したいと思います。モデルがデータベースに保存されたら、プロセスを逆にしたいと思います。

HTMLエンティティからユニコードへの実際の変換、およびその逆を行うことはできますが、これを達成するのに十分なほどDjangoを知りません。

管理者用のモデルフォームを調べましたが、データが list_display またはサイトの他の場所に表示されている場合、これは機能しません。

これに接続する最良の方法はどこですか?

4

1 に答える 1

1

custom fieldこのフィールドを呼び出し/保存するものに自動的に適用したい場合は、作成することを検討してください。具体的には、データベースからモデルへの変換をto_pythonで、モデルからデータベースへの変換を で設定しget_prep_valueます。

これが管理者の 1 つの領域に固有の動作である場合は、ModelAdmin. list_display出力に対して何でもできる読み取り専用フィールドを指すことができます。

純粋な管理者:

class ModelAdmin(admin.ModelAdmin):
    list_display = ('_myfield',)
    readonly_fields = ('_myfield', )
    form = MyModelForm # modelform with overriden save() and init
    # converting values to / from db.

    def _myfield(self, obj):
        return whatever_conversion_here(obj.myfield)
于 2012-05-01T22:31:10.700 に答える