Django中的用户继承
我看到有几种方法可以扩展用户信息,所以我决定采用模型继承的方法。
比如,我有:
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方法来调用django_registration中的create_inactive_user,但我不知道如何将django_registration生成的用户对象保存到我的父表中,因为我使用了模型继承,并且在我的父模型中没有外键属性。
1 个回答
2
这可能是这样的:
p = Parent()
p.user_ptr = user
p.contact_means = ...
p.save()
(在使用模型继承时,Django会自动为你创建外键,并且会有一个以_ptr结尾的属性)