【问题标题】: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。

      【讨论】:

        猜你喜欢
        • 2012-07-12
        • 2018-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        相关资源
        最近更新 更多