Django 1.7 app注册表:根据数据库查询定义空白/必需

时间:2016-01-08 15:20:56

标签: python django django-1.7

我有一个数据库字段,我希望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.

1 个答案:

答案 0 :(得分:1)

required不是models.CharField的有效选项,您可能想要设置blank

您确定要让您的模型依赖于数据库中的设置吗?这意味着当模型设置发生变化时,Django将提示进行迁移。

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