【发布时间】:2018-12-25 07:16:15
【问题描述】:
我在 django 中创建了一个配置模型,以便站点管理员可以即时更改一些设置,但是有些模型依赖于这些配置。我正在使用 Django 2.0.2 和 Python 3.6.4。
我在 models.py 所在的目录下创建了一个 config.py 文件。
让我paracode(paraphase代码?Real Enum有更多选择):
# models.py
from .config import *
class Configuration(models.Model):
starting_money = models.IntegerField(default=1000)
class Person(models.Model):
funds = models.IntegarField(default=getConfig(ConfigData.STARTING_MONEY))
# config.py
from .models import Configuration
class ConfigData(Enum):
STARTING_MONEY = 1
def getConfig(data):
if not isinstance(data, ConfigData):
raise TypeError(f"{data} is not a valid configuration type")
try:
config = Configuration.objects.get_or_create()
except Configuration.MultipleObjectsReturned:
# Cleans database in case multiple configurations exist.
Configuration.objects.exclude(Configuration.objects.first()).delete()
return getConfig(data)
if data is ConfigData.MAXIMUM_STAKE:
return config.max_stake
如何在没有导入错误的情况下执行此操作?我试过绝对进口
【问题讨论】:
-
绝对导入不会有任何好处,因为循环导入仍然存在。您尝试导入需要当前文件才能加载的文件。
标签: django python-3.x django-models python-import