Django模型具有可变数量的字段

时间:2013-08-17 16:59:22

标签: django models emailfield

我正在开发一个新项目,我想创建一个django模型,根据另一个变量,它将具有可变数量的EmailField s。我正在尝试创建的是一个House模型,其中包含所有房屋成员(更具体地说,他们的电子邮件地址)。看到并非所有房屋都是相同的大小,有些会比其他房屋有更多的成员。

我希望用户输入他们家中的成员数量,并让django在模型上创建相应数量的EmailField s。有没有简单的方法来实现这一目标?感谢。

2 个答案:

答案 0 :(得分:10)

由于Django的模型字段直接链接到数据库中表的字段,因此无法使用可变数量的字段。相反,让另一个表具有外键:

class House(models.Model):
    # normal house fields go here

class EmailAddress(models.Model):
    email = models.EmailField()
    house = models.ForeignKey(House, related_name='email_addresses')

现在,您可以使用以下方式访问与房屋相关的所有电子邮件:

house = House.objects.get(pk=1)
house.email_addresses.all()

ForeignKey documentation可能有用。

答案 1 :(得分:2)

没有。将电子邮件放在单独的模型中,并使用ForeignKey将它们链接回House。