在我的项目中,我有不同的应用程序,在模型中,我为每个model.py
分别设置了特定的选项。
像:
size = models.CharField(max_length=1,
choices=SIZE_CHOICES)
SIZE_CHOICES = (
('f','feet'),
('i','inches'),
('y','yards'),
('m','milimeters'),
('c','centimeters'),
)
然而,所有应用程序之间共享一些相同的选项。
在一个地方拥有所有相同选择的最佳做法是什么?
(理想情况下,最终用户可以在某个地方定义它们,而不是在代码中。)
答案 0 :(得分:1)
我通常会为此创建一个特定的应用程序。例如,0.10
应用程序,我在其中定义了一个ALTER TABLE my_table CHANGE my_field my_field DECIMAL(10,2) ;
UPDATE my_table SET my_field = 0.10 WHERE my_field = 1 ;
,我在其中对选项进行硬编码,然后在我需要它们时将其导入。
或者,您可以创建一个简单的模型,您可以在其中自己创建它们。然后,您可以使用tools
函数将它们附加到特定字段。但是,该解决方案过于复杂,因为您需要在运行时附加这些解决方案。
最简单的解决方案是创建一个硬编码的choices.py
。我曾经尝试过你想做的事情,结果却是一团糟。因此,除非您真的需要它,否则我建议您手动管理__init__
文件。