我有一个包含一些“status”字段的模型类,其中包含一个choices
选项(每个选项都有自己的业务逻辑)。
根据Django网站的说法,选择应该是这样的:
class Order:
STATUS_ACTIVE = 1
STATUS_ENDED = 2
STATUS_CANCELED = 3
ORDER_STATUS_CHOICES = ( (STATUS_ACTIVE, 'Active'),
(STATUS_ENDED, 'Ended'),
(STATUS_CANCELED, 'Canceled'), )
order_status = models.IntegerField(choices=ORDER_STATUS_CHOICES)
order_status2 = models.IntegerField(choices=ORDER_STATUS2_CHOICES)
问题是,用许多字段的许多选择来填充我的模型类让人感觉很糟糕,是否有可能以某种方式封装它,但仍然将这些选择保留在模型类内部?
我试过使用内部类
class OrderStatus:
STATUS_ACTIVE = 1
STATUS_ENDED = 2
但是从模型类内部引用Order.OrderStatus.STATUS_ACTIVE会引发错误。
3条答案
按热度按时间nzrxty8p1#
您可以将这些选项封装在
dict
中:ne5o7dgx2#
如果django doc告诉你这么做,那就不是垃圾邮件,而是人们如何使用它们。你可以用更少的代码来做类似的事情:
n8ghc7c13#
如果您改用此选项,会发生什么变化?
第一个月
或者这个?
ORDER_STATUS_CHOICES = ( ('1', '1-Active'), ('2', '2-Ended'), ('3', '3-Canceled') )