maxclax
@maxclax

Django, как расширить юзера?

Вот таким, кодом я пытаюсь получить новые поля для персоны:
class UserProfile(User):
    class Meta:
        db_table = 'users'

    discount = models.FloatField(default=0)
    is_add_review = models.BooleanField(default=False)

    objects = UserManager()


Для форм и всего прочего он работает, но есть проблема с syncdb. При запуске у меня создало таблицу users и в ней только одно поле user_ptr_id и тут тупик. ПОдскажите, что не так делаю? Как мне в персону добавить поля?
  • Вопрос задан
  • 2454 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Зачем это всё? До 1.5 создаёшь профиль
class UserProfile(models.Model):
    user = models.OneToOneField(User)

и прописываешь в settings.py
AUTH_PROFILE_MODULE = 'UserProfile'

С 1.5 создавай полностью свой класс пользователя или наследуй от User и прописывай в settings.py
AUTH_USER_MODEL = 'myapp.MyUser'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Если необходимо только добавить поля к существующей модели юзера, то можно создать OneToOneField.
Подробнее тут: https://docs.djangoproject.com/en/dev/topics/auth/...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы