2016-08-01 5 views
1

次のコードでは、Non-default argument follows default argumentというエラーが表示されます。デフォルト以外の引数がデフォルト引数の後に続きます

これを解決する方法を知っている人はいますか?

class MyUserManager(BaseUserManager): 
    def _create_user(self, email, first_name=None, last_name=None, username=None, 
        password, is_staff, is_superuser, **extra_fields): 
     now = timezone.now() 

     if not email: 
      raise ValueError('Users must have an email.') 

     email = self.normalize_email(email) 

     if first_name and last_name: 
      potential_username = slugify(
       "{0} {1}".format(first_name, last_name)) 

      try: 
       check_user = self.model.get(
        username=potential_username).exists() 
      except check_user.DoesNotExist: 
       check_user = None 

      if not check_user: 
       username = potential_username 

     user = self.model(email=email, 
          username=username, 
          is_staff=is_staff, is_active=True, 
          is_superuser=is_superuser, last_login=now, 
          date_joined=now, **extra_fields) 
     user.set_password(password) 
     user.save(using=self._db) 
     return user 

    def create_user(self, email, first_name, last_name, username, 
        password=None, **extra_fields): 
     return self._create_user(email, password, is_staff=False, 
           is_superuser=False, **extra_fields) 

    def create_superuser(self, email, username, password, **extra_fields): 
     return self._create_user(email, password, is_staff=True, 
           is_superuser=True, **extra_fields) 
+0

は、あなたが完全なトレースを投稿してくださいことはできますか? –

答えて

1

これは、あなたがfirst_namelast_nameusernameにではなくpasswordにデフォルトをassigngingている

def _create_user(self, email, first_name=None, last_name=None, username=None, 
       password, is_staff, is_superuser, **extra_fields): 

を許可されていない、staffなどあなたは彼らの順序を変更する必要がありますいずれか、またはあなたは、割り当てる必要がありますデフォルトでは、usernameに続くパラメータになります。

例:

def _create_user(self, email, 
password, is_staff, is_superuser, 
first_name=None, last_name=None, 
username=None,**extra_fields): 
+0

注文を変更することはどういう意味ですか? – jape

+0

更新を参照してください – e4c5

+1

@sayseコピー貼りエラー – e4c5

関連する問題