Ответ 1
Вы создали новую модель пользователя, но вы еще не указали менеджера для этой модели. Если вы еще не знакомы с менеджерами в Django, я предлагаю сначала прочитать документацию по этому вопросу. Как говорит Django 1.5 (источник):
Вы также должны определить пользовательский менеджер для своей модели пользователя. Если ваша модель пользователя определяет поля имени пользователя и электронной почты так же, как и пользователь Django по умолчанию, вы можете просто установить Django UserManager; однако, если ваша модель пользователя определяет разные поля, вам нужно будет определить пользовательский менеджер, который расширяет BaseUserManager, предоставляя два дополнительных метода:
create_user()
иcreate_superuser()
.
Короче говоря, если ваша модель использует то же имя пользователя и поля электронной почты, что и модель Django User
, вы можете написать:
from django.contrib.auth.models import UserManager
class GalaxyUser(models.Model):
id = models.IntegerField(primary_key=True)
create_time = models.DateTimeField(null=True, blank=True)
update_time = models.DateTimeField(null=True, blank=True)
email = models.CharField(max_length=765)
password = models.CharField(max_length=120)
external = models.IntegerField(null=True, blank=True)
deleted = models.IntegerField(null=True, blank=True)
purged = models.IntegerField(null=True, blank=True)
username = models.CharField(max_length=765, blank=True)
form_values_id = models.IntegerField(null=True, blank=True)
disk_usage = models.DecimalField(null=True, max_digits=16, decimal_places=0, blank=True)
objects = UserManager()
class Meta:
db_table = u'galaxy_user'
В качестве альтернативы вам потребуется подкласс BaseUserManager
(также в django.contrib.auth.models
) и реализовать нужные методы. Затем вам нужно назначить его переменной objects
для вашей модели.