Найти - Пользователи
Полная версия: добавление Полей в Джанговского Usera
Начало » Django » добавление Полей в Джанговского Usera
1
Чел_вТапКах
Встал вопрос о добавление новых полей во встроенную модель User. прочитал Расширение модели пользователя через наследование и сразу столкнулся с тем что когда мы делаем sycdb в первый раз, то пользователь сохраняется в стандартном классе, а не переопределенном. Добавил возможность заходить и под стандартным Userom. Вроде и заходить стало, но вот в Админке исчезли группы и пользователи(вроде бы даже это немного логично). Не логично то , что когда я делаю в админке добавить usera в унаследованном классе выходит форма редактирования(для стандартного usera)+ мои поля, а не форма где есть тока логин пароль и подтверждение. И в связи с этим у меня пароль сохраняется в базу как просто число а не MD5 … меня это мягко говоря не совсем устраивает. Помогите пожалуйста решить проблему….
aliens
А почему не использовать Profile к юзеру?
Чел_вТапКах
Потому что мне кажется это более верный путь, и данный механизм может пригодиться в дальнейшем! Ато бы давно МанкиПатчинг заюзал……
ziro
В качестве кувалды можно применить это http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls то есть прописать свой admin view и втолкнуть его в ModelAdmin.get_urls. Ну а внутри сделать как оно надо.
Чел_вТапКах
а вам не кажется слишком мажорно писать свой admin view? а ссылочку почитаю, спасибо!
vaxXxa
Потому что мне кажется это более верный путь…
Ну, вроде бы доки советуют все таки создавать новый класс с привязкой к стандартному класу Юзера.
Я вот тоже сейчас над этим бился. Создал UserProfile… создал обработчик сигнала django.db.models.signals.post_save от Юзера и все ок.
А наследовать - это конечно красиво, но фиг его знает, как оно там сработает…
+ остальные приложения могут не понять такого подхода.
Чел_вТапКах
вот видимо я с этим как раз и столкнулся………. Ладно завтра попробую профайл все таки прикрутить….а про обработчик сигнала django.db.models.signals.post_save можете поподробнее рассказать??
vaxXxa
могу)) я делал так:
в models.py после определения класа UserProfile отслеживаем сигнал после сохранения модели User и если она только-только создана (а не просто сохранена), то создаем для этого экземпляра User экземпляр UserProfile. Вот и все…
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
icq = models.CharField(blank=True, max_length=15)
phone = models.CharField(blank=True, max_length=25)
address = models.TextField(blank=True)

def user_post_save(created, instance, **kwags):
if created:
UserProfile(user=instance).save()

models.signals.post_save.connect(user_post_save, sender=User)
Чел_вТапКах
Здесьговорится все таки о том , что лучше наследовать!!! с профайлом получилось практически, просто в конце стало лень вытаскивать профайл юзера в одельную модель в корень!
Так что первый мой вопрос по прежнему актуален!
и если делать изменить пароль для кастом юзера, то выходит ошибка
Warning at /admin/base/customuser/2/password/

Truncated incorrect DOUBLE value: '2/password'

Request Method: GET
Request URL: http://127.0.0.1:8000/admin/base/customuser/2/password/
Exception Type: Warning
Exception Value:

Truncated incorrect DOUBLE value: '2/password'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB