admin.py
クラスを定義することによる標準的なアプローチ:
exclude = ('some_hstore_field', )
動作しません。
明示的に指定することで期待される結果を得ることができましたfields
が、必要なものをすべて指定するよりも、必要のないものを除外したいと思います。
admin.py
クラスを定義することによる標準的なアプローチ:
exclude = ('some_hstore_field', )
動作しません。
明示的に指定することで期待される結果を得ることができましたfields
が、必要なものをすべて指定するよりも、必要のないものを除外したいと思います。
モデルに hstore フィールドがあると仮定すると、次のようになりますfacilities
。
facilities = hstore.DictionaryField(schema=HSTORE_SCHEMA)
次に、次のように書くことはできません。
exclude = ('some_non_hstore_field', 'facilities')
hstore スキーマが次のようになっていると仮定します。
HSTORE_SCHEMA = [
{
"name": "vegetarian_menu",
"class": "BooleanField",
"kwargs": {
"default": False,
"verbose_name": "vegetarian menu"
}
},
{
"name": "vegan_menu",
"class": "BooleanField",
"kwargs": {
"default": False,
"verbose_name": "vegan menu"
}
}
]
各サブフィールドをその名前で除外する必要があります。例:
exclude = ('some_non_hstore_field', 'vegetarian_menu', 'vegan_menu')
あなたはこのようにすることができます:
exclude = tuple(['some_non_hstore_field'] + [field['name'] for field in HSTORE_SCHEMA])
またはこのように-クラスフィールドのメタを使用:
exclude = tuple(['some_non_hstore_field'] + [field['name'] for field in YourModel._meta.get_field_by_name('facilities')[0].schema])
同じことが当てはまりますreadonly_fields