【问题标题】:Django models with variable number of fields具有可变数量字段的 Django 模型
【发布时间】:2013-08-19 22:02:32
【问题描述】:
我正在开发一个新项目,我想创建一个 django 模型,该模型将具有可变数量的 EmailFields,具体取决于另一个变量。我正在尝试创建的是一个 House 模型,其中包含房子的所有成员(更具体地说,他们的电子邮件地址)。由于并非所有房屋的大小都相同,因此有些房屋的成员会比其他房屋多。
我希望用户输入他们家中的成员数量,并让 django 在模型上创建相应数量的EmailFields。有什么简单的方法可以做到这一点吗?谢谢。
【问题讨论】:
标签:
django
models
emailfield
【解决方案1】:
因为 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 可能有用。
【解决方案2】:
没有。将电子邮件放在单独的模型中,并使用 ForeignKey 将它们链接回 House。