如何在Django admin中创建Student,如果Student是一个类,继承自User并具有必填字段

时间:2014-11-12 06:53:52

标签: django inheritance

我正在使用Django,我有两个模型,学生和教师,继承自用户。他们每个人都有用户字段(登录/密码/组等),但是用户有一个OneToOne字段Student_Group,您可以在其中为该学生选择组(不是Django组,而是大学中的组,如MZ103,MZ203, MZ303 ...)。

它创建正确,但是,当我在管理页面中创建学生时,Django(像往常一样,对所有用户)仅询问用户名/密码。我输入它,然后它保存所有数据,然后你可以改变一些东西 - 组,权限,student_group,你想要的一切。

对于普通用户来说没关系,所有字段都变成空白,您可以更改它们。但对于Student模型,Django尝试使用Student_Group = null保存它,并显示“Error,foreign key not null”

那么,我怎样才能让django填写所有字段,然后保存(不只是用户名/密码)?或者我怎样才能在课堂上创建OneToOne引用,继承自User?

1 个答案:

答案 0 :(得分:0)

您可以在保存之前使用commit=False添加代码。所以对于学生的例子:

# Create a form instance with POST data.
>>> f = AuthorForm(request.POST)

# Create, but don't save the new author instance.
>>> new_author = f.save(commit=False)

# Modify the author in some way.
>>> new_author.some_field = 'some_value'

# Save the new instance.
>>> new_author.save()