小编Ric*_*ard的帖子

Django模型加入一对多关系以在模板中显示

不确定描述问题的最佳方法是什么.我有2个表联系和属性.联系表每人有1个条目,属性表每人有0个,1个或多个条目.他们目前加入了一个"假的"外键,这个外键实际上不是外键.如果我需要添加外键,那么处理旧数据并不是什么大问题,原来没有外键.所以表格如下:

联系:

class contact(models.Model):
    contactId = models.AutoField(primary_key=True, db_column='contactId')
    firstName = models.CharField(max_length=255, null=True, db_column='firstName')
    middleName = models.CharField(max_length=255, null=True, db_column='middleName')
    lastName = models.CharField(max_length=255, null=True, db_column='lastName')
Run Code Online (Sandbox Code Playgroud)

属性:

class attribute(models.Model):
    attributeId = models.AutoField(primary_key=True, db_column='attributeId')
    contactId = models.IntegerField(db_index=True, null=True, db_column='contactId')
    attributeValue = models.TextField(null=True, db_column='attributeValue')
Run Code Online (Sandbox Code Playgroud)

所以我已经正确设置了Django模型来表示这些表.现在我需要完成的是一个循环遍历这些表的视图和模板,以便它以下列格式生成一个xml doc:

<contacts>
    <contact>
        <contactId></contactId>
        <firstName></firstName>
        <lastName></lastName>
        <attributes>
            <attribute>
                <attributeId></attributeId>
                <attributeValue></attributeValue>
            </attribute>
        </attributes>
    </contact>
</contacts>
Run Code Online (Sandbox Code Playgroud)

因此,将列出所有联系人以及与每个联系人关联的所有属性.

我确信有一种简单的方法可以实现这一目标.在其他语言中,我会简单地编写两个循环查询来遍历联系人,然后遍历每个联系人的属性.然而,我工作的公司正在迁移到一个新的平台,并希望用django/python编写的新应用程序,我仍在努力学习.

任何人都可以提供任何帮助表示赞赏.

database django django-templates django-models left-join

3
推荐指数
1
解决办法
2936
查看次数