大家好!
我有一个类似这样的模型
class BaseUser(models.Model):
user_data = models.ForeignKey(settings.AUTH_USER_MODEL) #External Auth User Model
class Teacher(BaseUser):
pass
class Student(BaseUser):
pass
我正在将所有模型添加到Django管理员中。
for model in get_models(get_app('MyApp')):
admin.site.register(model)
在管理面板中,我可以创建/查看BaseUser
,Teacher
和Student
的列表。 Teacher
/ Student
是BaseUser
的子集。
问题
创建新用户时,它自动为BaseUser
。
有没有办法在管理面板中将用户的类别从BaseUser
更改为Teacher
或Student
?
答案 0 :(得分:2)
在管理员中没有内置的方法。您必须自己编写代码,或者如果要创建Teacher
,请从其管理创建视图中进行编写。
不仅是关于python类的模型,还有数据库表示。对于使用具体继承的每个模型,将创建特殊表,其中包含模型子类的其他字段,并自动创建OneToOneField
到父级。 Details here
编辑:
尝试指定可由管理员管理的parent link field,因此它允许您创建例如与现有Teacher
相关联的新BaseUser
。
编辑: 指定父链接也无济于事,因为该字段不会出现在admin。
中