【发布时间】:2011-07-03 22:52:02
【问题描述】:
不确定描述问题的最佳方式是什么。我有 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')
属性:
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')
所以我已经正确设置了 Django 模型来表示这些表。现在我需要完成的是一个视图和模板来循环这些表,以便它生成以下格式的 xml 文档:
<contacts>
<contact>
<contactId></contactId>
<firstName></firstName>
<lastName></lastName>
<attributes>
<attribute>
<attributeId></attributeId>
<attributeValue></attributeValue>
</attribute>
</attributes>
</contact>
</contacts>
所以会有一个所有联系人的列表以及与每个联系人关联的所有属性。
我确信有一种简单的方法可以实现这一点。在其他语言中,我会简单地编写两个循环查询来遍历联系人,然后遍历每个联系人的属性。然而,我工作的公司正在迁移到一个新平台,并且想要用 django/python 编写的新应用程序,我仍在努力学习这两者。
感谢任何人提供的任何帮助。
【问题讨论】:
-
你的模型是什么样的?有什么理由不将
attribute.contactId定义为ForeignKey? -
它没有外键集的唯一原因是因为它是一个较旧的数据库模型。公司没有任何针对外键的东西。我在原始帖子中添加了实际模型。
标签: database django django-models django-templates left-join