2016-09-12 25 views
1

私は頭がおかしくないような少しの問題があります。それは非常に些細なことのように思えるが、私はそれを理解できない。基本的に私がやろうとしているのは、特定のプロジェクトに関する情報を保持しているProjectモデルを作成し、「Get Program」や「Download Release」などのリンク名を保持し、URLFieldを持つLinkというモデルを作成することですこれらのリンクのURLを保持しており、子はProjectです。テンプレートにDjangoモデルを渡す

は、これまでのところ、私のmodels.pyは以下の通りです:

from django.db import models 

class Project(models.Model): 
    name = models.CharField(max_length=255) 
    description = models.TextField() 

    def get_name(self): 
     return self.name 

    def get_description(self): 
     return self.description 

    def __str__(self): 
     return self.name 

class Link(models.Model): 
    project = models.ForeignKey(Project) 
    name = models.CharField(max_length=255) 
    url = models.URLField() 

    def get_name(self): 
     return self.name 

    def __str__(self): 
     return self.name 

問題は私のviews.pyである私は、プロジェクトが、私はそれらを反復処理すると、プロジェクトのオブジェクトを含む各プロジェクトのすべてのリンクを表示することができますので、オブジェクトを渡すことができるようにしたいです名前や説明などのフィールド。これまでのところ私がやった:あなたはあなたが本当にチュートリアルを行う必要があります

{% for project in projects %} 
    {% for link in project.link_set.all %} 
     {{ link }} 
    {% endfor %} 
{% endfor %} 
+0

することができますか? –

+0

@JackEvans私は質問の中でviews.pyを更新しました – Zer0

答えて

1

for project in projects: 
    for link in project.link_set.all: 
     <...> 

related_name="links"にあなたの外部キーを追加し、内側のループのようなビュー機能の外観の残りの部分を何

for link in project.links: 
+0

すごい!それはトリックをした、私はそれがループ内にあったと信じられない。私は愚かだと感じる:/ – Zer0

+0

あなたがつかまえてしまうなら、https://docs.djangoproject.com/en/1.10/intro/tutorial03/#write-views-that-actually-do-somethingと一緒に行きたいと思うかもしれません。 future –

+0

プロジェクト 'link_set.all'は、モデルのインスタンスに関連するすべてのオブジェクトを取得しますか?例として、私はモールスと呼ばれるオブジェクトを持っていて、私はモールスに関連したリンクを持っていましたが、モールスに関連するすべてが表示されますか? – Zer0

0

で各プロジェクトのためのリンクをループすることができるはずですprojects.htmlテンプレート内

from django.shortcuts import render 
from django.http import HttpResponse 
from .models import Project, Link 

def projects_index(request): 

    projects = Project.objects.all() 
    links = Link.objects.all() 

    context = { 
     'projects': projects, 
    } 
    return render(request, 'projects.html', context) 
+0

ありがとう!私はこれを念頭に置いておくだろう:) – Zer0

関連する問題