抱歉,如果标题不符合要求,我不知道如何表达我的问题。请随时编辑一个更好的。这是我正在尝试做的事情:
我正在尝试使用几种不同的模型创建一个关系数据库。这个想法是:
- 合同是唯一的
- 任何合同都可以拥有(并共享)任意数量的项目
- 需要为特定合同存储有关每个特定项目的唯一信息
到目前为止,我按预期工作的前两个要点。第三点似乎奏效了,至少在管理面板中是这样。我可以将一条信息分配给特定合同的特定项目。
首先,我这样做是否正确?
其次,作为视图的一部分,我如何一次列出以上所有信息?像这样:
-ContractName
-ProjectName
-ProjectName
-SpecificInfo/Comments
-ProjectName
这是我目前拥有的模型代码:
from django.db import models
class Project(models.Model):
identifier = models.CharField(max_length=30)
description = models.CharField(max_length=100)
def __unicode__(self):
return self.identifier
class Contract(models.Model):
number = models.CharField(max_length=30)
name = models.CharField(max_length=75)
projects = models.ManyToManyField(Project)
def __unicode__(self):
return self.number
class Info(models.Model):
contract = models.ForeignKey(Contract)
project = models.ForeignKey(Project)
title = models.CharField(max_length=75)
info_text = models.TextField()
def __unicode__(self):
return self.title
这是当前仅显示合同和任何相关项目的视图:
<ul>
{% for contract in contracts %}
<b><li>{{ contract.number }} - {{ contract.name }}</li></b>
{% for project in contract.projects.all %}
<ul>
<li>{{ project.identifier }} - {{ project.description }}</li>
</ul>
{% endfor %}
{% endfor %}
</ul>