Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Переопределение базовой модели User в Django [RSS Feed]

#1 Апрель 14, 2014 14:43:38

AllGood
Зарегистрирован: 2014-03-02
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Переопределение базовой модели User в Django

Всем добра!!!
Пишу API на Django + Django REST framework.
Как написано в доке для расширения инфы о пользователе можно использовать отношение один к одному.

class Profile(models.Model):
    age = models.IntegerField()
    gender = models.CharField(max_length=10)
    initial_weight = models.FloatField()
    height = models.FloatField()
    # Relations
    user = models.OneToOneField(User, related_name='profile')
Одна для валидации при регистрации (и вообще на будущие) мне нужно что бы поле email стало required. Неужели для такого маленького изменения предеться переопределять всю модель User с ее обязательными методами? Или же есть другой способ добиться этого?
И еще уточню, что я хочу сделать именно поле модели обязательным, а не писать дополнительные валидационные методы для проверки значения или что то подобно. Однако прислушаюсь к любому совету!

Офлайн

#2 Апрель 14, 2014 16:14:53

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Переопределение базовой модели User в Django

А почему бы не использовать AbstractBaseUser или CustomUser?
https://docs.djangoproject.com/en/dev/topics/auth/customizing/

Отредактировано fongostev (Апрель 14, 2014 16:17:21)

Офлайн

#3 Апрель 14, 2014 16:44:02

AllGood
Зарегистрирован: 2014-03-02
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Переопределение базовой модели User в Django

А я вот потому и спрашиваю ). Я потерялся в этих "или", хочу найтись.
Мне нравиться когда в проекте нет ничего лишнего. Конкретно сейчас модель User у меня должна состоять из полей email и password и больше ничего. И по этой логике я бы хотел просто напросто заменить стандартную User модель на кастомную, и тогда вся система авторизации летит к чертовой матери - я должен переопределить целую кучу новых методов для работы.
Плюс к этому я не знаю как на такую замену отреагируют уже установленные библиотеки иди же те которые могут быть установлены. Предполагаю что то же все так просто не будет, и там тоже придется что то переписывать.
Прокси модель мне сейчас использовать не надо….
понаписал тут всякого
В общем на сколько сложно следовать концепции ничего лишнего, какие проблемы при этом возникают?
Стоит ли оно того?
Может быть я в корне что то не верно понимаю, подскажите как понять что почитать?

Офлайн

#4 Апрель 14, 2014 17:54:08

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Переопределение базовой модели User в Django

Я кинул ссылку, почитайте. Там написано про кастомные модели пользователя и как сделать авторизацию на их основе, не переопределяя никаких методов.
Вообще “ничего лишнего” можно достичь, если изначально правильно поставить задачу
Но оно не всегда бывает очевидным, иной раз после полутора лет работы над проектом понимаешь, как надо было сделать.
Хорошие ресурсы можно найти тут на форуме в теме http://python.su/forum/topic/1535/

Офлайн

  • Начало
  • » Django
  • » Переопределение базовой модели User в Django[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version