регистрация в django: каков современный «канонический» способ расширения «contrib.auth.models.User» - PullRequest
2 голосов
/ 14 января 2012

помещения:

1) Среда: django 1.3, python 2.6, dev: для нескольких платформ, prod: RHEL

2) Я бы хотел, чтобы сотрудники сайта могли добавлять пользователей (изадмин сайта).Способ, которым они заполняют только на ОДНОЙ странице "имя пользователя", "электронная почта", "пароль1", пароль2 "И" имя_первого имени "," имя_папки "," телефон "," Skype ".Нажмите «ОК», и все готово.

3) Я искал документы и Интернет и нашел только весьма устаревшие источники, нерабочие идеи и некоторые источники, которые могут работать, но имеют дело с модификацией самого django (которыйМне было трудно развертывать и поддерживать)

Каковы ваши советы по выполнению этой работы наиболее чистым (простым, прозрачным, простым способом)?

Пока эта статья и ее комментарии былисамый полезный источник, который я нашел: http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

спасибо

1 Ответ

2 голосов
/ 14 января 2012

Я считаю, что рекомендуемый способ сделать это через UserProfile:

#models.py
class MySiteProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    join_date = models.DateField()
    # and whatever additional fields you want

#admin.py
from django.contrib.auth.admin import UserAdmin

admin.site.unregister(User)

class MyUserAdmin(UserAdmin):
    inlines = [MySiteProfileInline, ]

admin.site.register(User, MyUserAdmin)


#inlines.py
class MySiteProfileInline(admin.TabularInline):
    model = MySiteProfile
...