django Field.choices从单个文件中读取

时间:2018-05-17 15:00:54

标签: python django

我的模型中有一个Field.choices。让我们说它是:

YEAR_IN_SCHOOL_CHOICES = (
    ('FR', 'Freshman'),
    ('SO', 'Sophomore'),
    ('JR', 'Junior'),
    ('SR', 'Senior'),
)


MEDIA_CHOICES = (
    ('Audio', (
            ('vinyl', 'Vinyl'),
            ('cd', 'CD'),
        )
    ),
    ('Video', (
            ('vhs', 'VHS Tape'),
            ('dvd', 'DVD'),
        )
    ),
    ('unknown', 'Unknown'),
)

我可以使用此方法模型访问它们。 YEAR_IN_SCHOOL_CHOICES但是如何将所有这些文件保存到一个文件中并在我的模型中使用它们?它甚至可能吗?我的意思是我想要一个名为mychoise.py的python文件并保存所有选项然后以这种方式访问​​它们

 year_in_school = models.CharField(
        max_length=2,
        choices=mychoise.YEAR_IN_SCHOOL_CHOICES,
        default=FRESHMAN,
    )

2 个答案:

答案 0 :(得分:1)

您可以从模块YEAR_IN_SCHOOL_CHOICES导入mychoise。只需记住__init__.pymychoise.py

在同一目录中

答案 1 :(得分:1)

在您的某个应用中创建文件mychoise.py,添加所有choices个变量。然后要导入它们,您只需要导入它们,如下面的所有模型代码

from the_app.mychoise import *
form the_app.mychoice import YEAR_IN_SCHOOL_CHOICES

choices=YEAR_IN_SCHOOL_CHOICES

或者您可以直接导入文件

from the_app import mychoise

choices=mychoise.YEAR_IN_SCHOOL_CHOICES