2016-08-11 3 views
0

内のアプリケーションで私がBaseUserManagerを拡張し、私のカスタムマネージャーと一緒に私のカスタムユーザーを作成するために、DjangoのAbstractUserを使用していますされていません。しかし、私はまだそれに余分なフィールドを追加しませんでした。だから、次のようになります。Modelクラスmyproject.apps.accounts.models.Userは、明示的なapp_labelを宣言しないとINSTALLED_APPS

# mypoject/apps/accounts/models.py 

from django.contrib.auth.models import AbstractUser 
from myproject.apps.accounts.managers import UserManager 

class User(AbstractUser): 
    objects = UserManager 

そして私はそれのためのユニットテストを書いて、それは次のようになります。

# myproject/apps/accounts/tests/test_models.py 

from unittest import TestCase 

class UserTests(TestCase): 
    def test_create_user(self): 
     from myproject.apps.accounts.models import User 
     user = User.objects.create_user(username='mock_user') 
     self.assertIsInstance(user) 

しかし、私は、テストを実行すると、私はこのエラーメッセージが表示されます。

RuntimeError: Model class myproject.apps.accounts.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. 

PS:私のアカウントのアプリケーションはINSTALLED_APPSの配列にあり、正常に動作します。

+0

を割り当てる必要がありますか? AUTH_USER_MODELは何に設定されていますか? –

+0

カスタムユーザーモデルを含むマイアカウントアプリがINSTALLED_APPSに追加されます。 AUTH_USER_MODELは 'accounts.User'に設定されています。私は 'get_user_model()'に対して ''を取得します。この問題は、カスタムユーザーモデルを明示的にインポートするときにのみ発生します。 @ダニエル –

答えて

1

これは、問題のhereを説明するかもしれないとobjectsにあなたはINSTALLED_APPSにあるまさにマネージャインスタンスに

class User(AbstractUser): 
    objects = UserManager() 
関連する問題