Пользовательский наследование в Джангу
-
09-10-2019 - |
Вопрос
Я видел пару способов расширения пользовательской информации пользователей и решил принять метод моделей наследования.
Например, у меня есть:
class Parent(User):
contact_means = models.IntegerField()
is_staff = False
objects = userManager()
Теперь это сделано, я скачал Django_registration, чтобы помочь мне с отправкой электронных писем для новых пользователей. Вещь, а не используя регистрационные формы для регистрации нового пользователя, я хочу вызвать возможность отправки / ACITVation электронного письма Django_registration. Итак, мой рабочий процесс:
1. add new Parent object in admin page.
2. send email
Моя проблема в том, что Django-регистрация создает новый профиль регистрации вместе с новым пользователем в таблице пользователя. Как мне настроить это так, чтобы я мог добавить запись пользователя в пользовательскую таблицу пользователей.
Я пытался создать
modelAdmin
И измените метод Save_Model, чтобы запустить Create_Inactive_user из django_registration, однако я не как сохранить объект пользователя, созданный из django_registration, в мою родительскую таблицу, когда я использую модель наследования модели, и у меня нет атрибута внешнего ключа в моей родительской модели.
Решение
Это, вероятно, что-то вроде:
p = Parent()
p.user_ptr = user
p.contact_means = ...
p.save()
(Django создает внешний ключ для вас при выполнении модели наследования, а также атрибут, заканчивающийся в _PTR)