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