0

アプリの models.py で、次のようなカスタム ユーザー モデルへの外部キーのデフォルト値を定義しようとしています。

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

カスタム ユーザー モデルも同じ models.py で定義されています。

ただし、使用しようとすると、別のアプリ models.py で醜い循環インポートの問題が発生しますget_user_model()

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

これを解決するにはどうすればよいですか?

4

1 に答える 1

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]
于 2013-07-10T06:10:58.113 に答える