我有一个数据库字段,我希望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.
答案 0 :(得分:1)
required
不是models.CharField
的有效选项,您可能想要设置blank
。
您确定要让您的模型依赖于数据库中的设置吗?这意味着当模型设置发生变化时,Django将提示进行迁移。
另一种方法是在模型字段中设置blank=True
,然后检查表单中的phone_required
设置。这样,您应该可以避免AppRegistryNotReady
错误。