私のテンプレートから外部キー要素にアクセスしようとしています。私はこのようなクラスビューを使用して複数のコンテキストを渡すためにしようとしています:複数のコンテキストを渡しながらdjangoのループ内でループする方法
class HomeView(ListView):
template_name = "homepage/home.html"
queryset = Author.objects.all()
def get_context_data(self, **kwargs):
context = super(HomeView, self).get_context_data(**kwargs)
context['author_links'] = Author_link.objects.all()
context['categories'] = Category.objects.all()
context['extra_links'] = Extra_link.objects.all()
context['poems'] = Poem.objects.all()
return context
私のmodels.pyファイル:私は、コンテキストをループしようとしていたときに
class Author(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class Author_link(models.Model):
url_text = models.CharField(max_length=100)
url = models.CharField(max_length=200)
author = models.ForeignKey(Author)
def __str__(self):
return self.url_text
class Category(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
class Meta:
verbose_name_plural = 'categories'
def __str__(self):
return self.name
class Extra_link(models.Model):
url_text = models.CharField(max_length=100)
url = models.CharField(max_length=200)
category = models.ForeignKey(Category)
def __str__(self):
return self.url_text
しかし、私はアクセスに見えることはできません各項目の外部キー:
{% for author in object_list %}
<li class = "collection-item">
<ul class="collapsible" data-collapsible="accordion">
<li>
<div class="collapsible-header">{{author.name}}</div>
<div class="collapsible-body">
{% for item in author.item_set.all %}
<p>{{item.url}}</p>
{% endfor %}
</div>
</li>
</ul>
</li>
{% endfor %}
私がやろうとしています、何が各著者に関連付けられているURLを介して著者ループの下に作者を通じて、同時にループです。 Author_link
からAuthor
への外部キーがあるので、あなたが
{% for item in author.item_set.all %}
<p>{{item.url}}</p>
{% endfor %}
はあなたが
{% for item in author.author_link_set.all %}
<p>{{item.url}}</p>
{% endfor %}
このマネージャ(author.author_link_set
)のようなものを持っている必要があります持っている
あなたのモデルには著者とカテゴリの間には関係がありません。そして、 'item_set'とは何でしょうか?正確には、各作者のために何を繰り返そうとしていますか? –