наследование пользователя в Django - PullRequest
0 голосов
/ 10 января 2011

Я увидел несколько способов расширения пользовательской информации пользователей и решил принять метод наследования модели.

например, у меня есть:

class Parent(User):
    contact_means = models.IntegerField()
    is_staff = False 
    objects = userManager()

Теперь все готово, я скачал django_registration, чтобы помочь мне с отправкой электронных писем новым пользователям. Дело в том, что вместо того, чтобы использовать регистрационные формы для регистрации нового пользователя, я хочу вызвать возможность отправки / активации электронной почты django_registration. Итак, мой рабочий процесс:

1. add new Parent object in admin page.
2. send email

Моя проблема в том, что django-registration создает новый профиль регистрации вместе с новым пользователем в пользовательской таблице. как настроить это так, чтобы я мог добавить запись пользователя в пользовательскую таблицу пользователя.

Я пытался создать

modelAdmin

и измените метод save_model для запуска create_inactive_user из django_registration, однако я не делаю, как сохранить пользовательский объект, сгенерированный из django_registration, в мою родительскую таблицу, когда я использую наследование модели, и у меня нет атрибута внешнего ключа в моем родителе модель.

1 Ответ

2 голосов
/ 11 января 2011

Это, наверное, что-то вроде:

p = Parent()
p.user_ptr = user
p.contact_means = ...
p.save()

(Django создает для вас внешний ключ при наследовании модели плюс атрибут, заканчивающийся на _ptr)

...