我正在构建一个网站,我有两个模型,我们称之为Model1和Model2,Model2有一个指向Model1的foreignKey属性。我有一个模板,在这个模板中,我可以访问数据库Model1表中所有条目的列表。我要做的是对所有与特定条目model1相关联的条目model2执行for循环。
在某种意义上,我可以做到:
for model2 in model1.model2_set.all():
但我怎样才能在模板中做到这一点呢?
我试过了
{% for model2 in model1.model2_set.all %}
但那不管用。
提前谢谢!
编辑:
模型.py
class Plat(models.Model):
titre = models.CharField(max_length = 100)
description = models.TextField(null = True)
allergenes = models.TextField(null = True)
prix = models.IntegerField(verbose_name = "Prix par portion")
chef = models.ForeignKey('inscription.Chef', on_delete = models.CASCADE)
date_prep = models.DateTimeField(default=timezone.now, verbose_name="Date et heure de préparation")
nb_portions = models.IntegerField(verbose_name = "Nombre de portions disponibles")
photo = models.ImageField(upload_to = "photos_plat/")
is_ordered = models.BooleanField(default=False)
class Meta:
verbose_name = "Plat"
ordering = ['date_prep']
def __str__(self):
return self.titre
class Commande(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE)
plat = models.ForeignKey('Plat', on_delete = models.CASCADE) # models.PROTECT pour pas supprimer, models.CASCADE pour supprimer.
nb_portions = models.IntegerField(verbose_name = "Nombre de portions")
date = models.DateTimeField(verbose_name="Date de commande")
livraison = models.BooleanField(default=False)
adresse_livraison = models.CharField(max_length = 100, verbose_name = "Adresse de livraison", blank = True)
class Meta:
verbose_name = "Commande"
ordering = ['date']
模型1是Plat,模型2是command
视图.py
def mes_plats(request):
return render(request, 'actualites/mes_plats.html', {'my_meals': Plat.objects.filter(chef=request.user.useradvanced.chef, date_prep__gte = date.today())})
mes_plats.html
{% for plat in my_meals %}
{% if plat.is_ordered %}
<ul>
{% for commande in plat.commande_set.all %}
<li> {{ commande.user.useradvanced }} : {{ commande.nb_portions}} portions.</li>
</ul>
{% else %}
Ce plat n'a pas encore été commandé par un utilisateur.
{% endif %}