2017-11-29 14 views
1

私はカスタムDjangoチュートリアルのようにAbstractUserから継承したカスタムユーザモデルをDjangoに書いています。しかし、これはエラーを投げる。Djangoカスタムユーザモデル投げSystemCheckError - 'username'フィールドが 'username'という名前と衝突します

django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: 

ERRORS: 
redditauth.RedditUser.username: (models.E006) The field 'username' clashes with the field 'username' from model 'redditauth.reddituser'. 

ここにカスタムユーザーモデル用に記述したコードを示します。

class RedditUser(AbstractUser): 
    username = models.CharField(unique=True, primary_key=True, validators=[validate_reddit_username], max_length=20) 
    token = models.CharField(max_length=256) 

    USERNAME_FIELD = username 
    REQUIRED_FIELDS = ['token'] 

    def reddit(self): 
     with open('secret.json', 'r') as f: 
      secret = json.load(f) 

     return praw.Reddit(client_id=secret['client_id'], client_secret=secret['client_secret'], 
          refresh_token=self.token, user_agent='Plan-Reddit by /u/SkullTech101') 

私は多分そこAbstractUserusernameという名前のフィールドにはすでにだったが、それが問題を解決しなかったことを考えて、username以外の何かに名前を変更しようとしています。

+1

文字列ではなく変数を使用しました – Alasdair

答えて

0

@Alasdairは、USERNAME_FIELDの値を設定するときに、変数ではなく文字列を使用する必要があることを指摘しました。 `USERNAME_FIELD =「username'`:

は、だから私の場合、それは

USERNAME_FIELD = 'username' 
関連する問題