Любая подсказка?
Да.AFAIK это не работает так, как вы надеетесь.Модели Django не являются тривиальными классами Python.Они больше похожи на метаклассы, которые создают экземпляры своего рода «скрытого» определения класса.Да, ожидаемый класс моделей существует, но это не совсем то, что вы думаете.Во-первых, используемый вами класс был создан для вас из определения класса.Вот почему некоторые статические функции классов Python не работают так, как вы ожидаете в моделях Django.
Вы не можете использовать такие элементы уровня класса, как этот.хочу создать фактическое поле со значением по умолчанию или чем-то подобным.
class UploadItem(UserEntryModel):
category = models.CharFIeld( default='abstract item' )
file = models.FileField(upload_to=get_upload_directory)
Даже после добавления комментариев к вопросу, мне все еще неясно, почему это делается.Кажется, нет никаких структурных или поведенческих различий.Все это похоже на один класс объектов.Подклассы, кажется, не определяют ничего нового.
Опции.
Просто используйте имя класса вместо этого элемента категории на уровне класса.Сделайте имена классов достаточно хорошими, чтобы вам не понадобился этот элемент категории.
Используйте свойство
class UploadItem(UserEntryModel):
file = models.FileField(upload_to=get_upload_directory)
@property
def category( self ):
return self.__class__.__name__