Django中的用户继承

0 投票
1 回答
2332 浏览
提问于 2025-04-16 09:43

我看到有几种方法可以扩展用户信息,所以我决定采用模型继承的方法。

比如,我有:

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结尾的属性)

撰写回答