Django dumpdata: Ошибка "Unable to serialize database" из-за переменной BitFlagField
Я пытался создать приспособление таблицы, но оно всегда терпело неудачу со следующим сообщением: CommandError: Unable to serialize database: __str__ returned non-string (type method). Стек-трейс был столь же бесполезен, указывая на один из файлов Django в качестве виновника.
После некоторого возиться, мне удалось определить виновника в models.py:
class UserExtra(model.Models):
(...)
blocked = BitFlagField(
flags=(
'manual', 'system', 'tries', 'expired', 'inactivity',
'nosys_nobypass'
),
db_column='ind_block'
)
Класс представляет собой только список переменных и не имеет какой-либо функции. Если я удалю этот var и запущу команду dumpdata, она работает. Как мне сериализовать это поле?
Как Ян Шелвингтон помог мне выяснить в комментариях выше, BitFlagField - это пользовательский тип, и проблема была в возврате его функции __str__, поскольку она вызывала метод __repr__ неправильным образом (return self.__repr__).
Закрываю, потому что проблема первоначального вопроса была решена, хотя это привело к другой проблеме.