使用自定义模型时,以FK默认值循环导入

时间:2013-07-10 05:38:52

标签: django foreign-keys models

我正在尝试在我的app models.py中定义一个自定义用户模型的外键默认值,例如:

  owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=False, 
           default=get_user_model().objects.get()[0].pk)

自定义用户模型也在相同的models.py

中定义

但是,当我们尝试使用get_user_model()时,我在另一个app models.py中遇到了丑陋的循环导入问题:

django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to
model 'myapp.MyCustomUserModel' that has not been installed

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

添加方法以获取默认所有者,而不是将其作为值。

owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=False, 
                          default=get_default_owner)

#this can be a global method and need not be in same model.
def get_default_owner():
    return get_user_model().objects.get()[0]