1

タイトルがスクラッチになっていない場合はお詫びします。問題をどのように表現すればよいかわかりませんでした。より良いものに自由に編集してください。これが私がやろうとしていることです:

いくつかの異なるモデルを使用してリレーショナル データベースを作成しようとしています。アイデアは次のとおりです。

  • 契約は唯一無二
  • どの契約でも、任意の数のプロジェクトを持つ (および共有する) ことができます
  • 特定の契約の特定のプロジェクトごとに一意の情報を保存する必要がある

これまでのところ、最初の 2 つの箇条書きは期待どおりに機能しています。少なくとも管理パネルでは、3 番目のポイントは機能しているようです。特定の契約の特定のプロジェクトに情報を割り当てることができます。

まず第一に、私はこれを正しい方法で行っていますか?

次に、ビューの一部として、上記のすべての情報を一度に一覧表示するにはどうすればよいですか? そのようです:

-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>
4

1 に答える 1