Я понимаю, что в Django ORM не поддерживает тип ENUM в MySQL или PostgreSQL, поскольку это изначально было расширением MySQL, а не переносимым по другим типам БД. Таким образом, два варианта - использовать аргумент "выбор" для вашей модели или использовать ссылку на внешний ключ.
Каковы плюсы и минусы этих подходов?
Что-то вроде пола, я предполагаю, что вы будете использовать "выборы", например:
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
...
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
Однако, для чего-то вроде имен состояний, в чем причина и против использования отдельной таблицы и внешних ключей к этой таблице?
state = models.ForeignKey(AustralianState)
В каких обстоятельствах вы могли бы использовать один против другого?
Cheers, Виктор