【发布时间】:2016-10-14 03:43:12
【问题描述】:
我有一个带有一些“状态”字段的模型类,其中有一个 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)
问题是,向我的模型类发送许多字段的选择感觉很糟糕,可以以某种方式封装它,但仍将这些选择保留在模型类内部? p>
我尝试过使用像
这样的内部类class OrderStatus:
STATUS_ACTIVE = 1
STATUS_ENDED = 2
但是从模型类内部引用 Order.OrderStatus.STATUS_ACTIVE 会引发错误。
【问题讨论】:
-
为什么要将它保留在模型中?
-
因为这些选择与模型字段有关?同样根据 django 网站,最好将选项放在类中。虽然如果我看到它们变大,我可能会将它们分开
标签: django class model field choice