Я работал над проектом, который включает страницу аутентификации с использованием Django и AngularJS. Я создал расширенную версию класса User и добавил поля «company» и «phone_number» в качестве полей.Django не правильно обновляет таблицы SQLite
Вот мой код models.py:
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
from django.db import models
from django.core.validators import RegexValidator
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')
#if access_code not in ['password']:
#raise ValueError('Sorry you are not eligible to join')
account = self.model(
email=self.normalize_email(email))
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):
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=40, blank=False)
last_name = models.CharField(max_length=40, blank=False)
company = models.CharField(max_length=40, blank=False)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
phone_number = models.IntegerField(validators=[phone_regex], blank=False, null=True) # validators should be a list
# access_code = models.CharField(max_length=40, blank=False, default='SOME STRING')
is_admin = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
objects = AccountManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name', 'company', 'phone_number']
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
Теперь, когда я иду в терминал и выполнить питона manage.py createsuperuser все параметры поля всплывал для меня, чтобы ввести текст. Однако, когда я проверяю базу данных впоследствии, обновляются только поля электронной почты и пароля. Компания, номер телефона, имя и фамилия возвращаются как ''.
Любая подсказка, что я делаю неправильно? Я потратил слишком много времени, пытаясь решить эту проблему.
Благодаря
Предлагаемое чтение: [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve) – wogsland