Django 1.7.1 kullanarak komut satırından create_superuser komutunu çağırmaya çalışırken ValueError: Users must have a valid username
hata alıyorum. E-posta alanına USERNAME_FIELD ile özel bir Kullanıcı modeli oluşturan bir eğiticiyi takip ediyorum. Bir kullanıcı adı için bana sormuyor ve kullanıcı adı python manage.py createsuperuser --username=someusername
ve python manage.py createsuperuser username=someusername
ile bir seçenek olarak geçmeyi denedim. Kodumun snippetleri aşağıda. settings.py dosyasında models.pyPython create_user hatası
# Create your models here.
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
from django.contrib.auth.models import BaseUserManager
class AccountManager(BaseUserManager):
def create_user(self, email, password=None, **kwargs):
if not email:
raise ValueError('Users must have a valid email address.')
if not kwargs.get('username'):
raise ValueError('Users must have a valid username')
account = self.model(
email=self.normalize_email(email), username=kwargs.get('username')
)
account.set_password(password)
account.save()
return account
def create_superuser(self, email, password, **kwargs):
account = self.create_user(email, password, **kwargs)
account.is_admin = True
account.save()
return account
class Account(AbstractBaseUser):
"""docstring for Account"""
email = models.EmailField(unique=True)
username = models.CharField(max_length=40, unique=True)
first_name = models.CharField(max_length=40, unique=True)
last_name = models.CharField(max_length=40, unique=True)
tagline = models.CharField(max_length=140, unique=True)
is_admin = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
modified_at = models.DateTimeField(auto_now=True)
objects = AccountManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELD = ['username']
def __unicode__(self):
return self.email
def get_full_name(self):
return ' ' . join([self.first_name, self.last_name])
def get_short_name(self):
return self.first_name
, ben yüklü uygulamalar listesine kimlik eklemiş ve ben authentication.Account
olarak
Çok teşekkür ederim. Yaptığı yazım hatasıydı. Kopyala ve yapıştırın iyi bir şey olabileceğini sanırım. Tekrar teşekkürler ve gelecekte forumda yayınlanmakta olduğu gibi aptalca hataları önlemek için kodumu çok daha fazla incelemeye çalışacağım :). – Courtney