我正在使用Django构建一个webapp,这将用于跟踪人员和工作/演出空缺。我们试图帮助的人的类型是不同的,但人们可能不止一个类别。如何在重叠项目中构造Django中的表格
举一个更具体的例子,让我们有演员,歌手,舞者。我可以设置三个表格:
class Actor(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
dramatic = models.BooleanField()
comedic = models.BooleanField()
height = models.DecimalField(max_digits=3, decimal_places=2)
weight = models.DecimalField(max_digits=5, decimals_places=2)
class Singer(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
style = models.TextField(max_length=20)
range = models.TextField(max_length=50)
class Dancer(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
style = models.TextField(max_length=20)
这将是非常好的,因为一长串的原因,能够唯一识别人。如果我在sql中这样做,我会有一个People
表,其中我存储了名称,dob等信息。然后将包含PersonId
的表作为外键和所有actor的特定属性。然后,我会创建一个视图,让我可以查看连接的数据。
但是,我也希望用户能够以单一形式输入歌手的信息。即不必创建一个人,然后一旦他们填写了表格person
,请填写另一个表格,将该人员添加为歌手。
所以,毕竟,我的问题是:有没有办法设置Django,以便我可以有一个表单写入多个表,并从多个表中返回信息,如视图?如果我不能,那么构建这样的东西的最好方法是什么?
即使指针正确的方向将不胜感激。我甚至不确定谷歌有什么合适的条款。
谢谢。我知道我不能成为第一个有这个问题的人。 –