Если у вас есть в вашей модели поле 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