J'ai du mal à essayer d'accéder à l'élément clé étrangère de mon modèle. Je suis en train de passer plusieurs contextes grâce à la vue de la classe comme ceci:Comment boucler dans une boucle dans django en passant plusieurs contextes
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
mon fichier 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
mais quand je suis en train de boucler dans le contexte que je ne peux pas sembler accès la clé étrangère de chaque élément:
{% 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 %}
ce que je suis en train de faire est une boucle par les auteurs et en même temps dans chaque boucle d'auteur à travers les urls qui sont associés à chaque auteur.
Il n'y a pas de relation dans vos modèles entre Auteur et Catégorie. Et qu'est-ce que 'item_set' est censé être? Exactement ce que vous essayez de parcourir pour chaque auteur? –