![](/img/trans.png)
[英]How to insert data into tables using html forms instead of Django forms?
[英]Django forms and registration: insert data to other tables
在我的应用程序中,我有两种类型的用户:学生和教师。 我想将有关它们的附加信息存储在单独的表中。
class Student(models.Model):
user = models.ForeignKey(User)
nr_indeksu = models.BigIntegerField()
def __unicode__(self):
return unicode(self.user)
假设我想将用户注册为学生-在这种情况下,我需要展开“用户注册”表格,因此它将包含“组”和“学生”模型中的字段,并且在注册期间,我想使用Student.user_id(FK)插入Student.nr_indeksu放入学生表,将Group.name放入User_Groups。
我已经通过使用元类创建了StudentForm,并以与UserCreationForm相同的形式将其呈现在模板中,但是我不知道如何处理保存到数据库中,因为UserCreationForm创建了应该进入学生模式的user_id。 有指针吗?
我有一个类似的问题。 通过使模型看起来有些不同来解决该问题:
class Student(User):
nr_indeksu = models.BigIntegerField()
def __unicode__(self):
return unicode(self.user)
这样,当您定义Django表单时,将为此模型呈现所有需要的字段。 这是因为您说的是学生是用户 ,而对前者则是学生有用户
该表格可能如下所示:
class StudentForm(forms.ModelForm):
class Meta:
model = Student
编辑:对教师模型使用类似的方法。 如果要避免呈现某些字段,请使用Meta类中的fields属性。
第二次编辑:如果要保留对User表单的验证和检查,该表单也应继承自UserCreationForm。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.