Django 1.7应用程序注册表:基于DB查询定义空白/必需

2024-10-01 09:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据库字段,我希望required值取决于数据库中存储的某些设置。举个简单的例子:

class ModelSetting(models.Model):
    key=models.CharField(unique=True)
    value=models.BooleanField()

def get_setting(key):
    return ModelSetting.objects.get(key=key).value

class MyModel(models.Model):
    phone_number=models.CharField(required=get_setting("phone_required"))

问题是ModelSetting是在与MyModel完全不同的模块中定义的,因此我猜在导入时(当phone_number字段被计算时,ModelSetting模型不可用。是这样吗?有没有可能的解决办法

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

Tags: key数据库numbergetmodelvaluemodelsrequired
1条回答
网友
1楼 · 发布于 2024-10-01 09:32:30

required不是models.CharField的有效选项,您可能希望改为设置blank

是否确实希望模型依赖于数据库中的设置?这意味着当模型设置更改时,Django将提示进行迁移

另一种方法是在模型字段中设置blank=True,然后检查表单中的phone_required设置。这样,您应该能够避免AppRegistryNotReady错误

相关问题 更多 >