@Ronii

Как сослаться на собственную константу при создании класса?

При создании класса не получается ссылаться на собственную константу Tag.TYPE_KEYWORD, т.к. класс еще не создан.
Есть ли решения, кроме как сразу вписать число в последнюю строку?
class Tag(models.Model):
    TYPE_KEYWORD = '1'
    TYPE_TOPIC = '2'
    
    type = models.IntegerField(default=Tag.TYPE_KEYWORD)
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
@marazmiki
Укротитель питонов
class Tag(models.Model):
    TYPE_KEYWORD = '1'
    TYPE_TOPIC = '2'
    
    type = models.IntegerField(default=TYPE_KEYWORD)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@bromzh
Drugs-driven development
class Foo:
    class Meta:
        TYPE_KEYWORD = '1'

    tp = Meta.TYPE_KEYWORD

# или
class Bar:
    foo = 3
    bar = {'key': 'value', 2: foo}
    baz = bar[2]
    qux = bar['key']

Возможно как-то так заработает. Вообще, классы, расширяющие models.Model, создаются с помощью магии метаклассов и возможно что и так не выйдет. При создании обычных классов всё работает без костылей.
Ответ написан
Комментировать
zelsky
@zelsky
Создать файл constants.py в нутри приложения прописать там константы и подключить в модели или вью.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы