![](/img/trans.png)
[英]Get an attribute in a template from a ManyToMany relationship in Django
[英]Display relationship attribute in django template
因此,在我的模型中,我有:
class Ingredient(models.Model):
name = models.CharField(max_length=200)
articleNumber = models.IntegerField(unique=True)
costPerUnity = models.DecimalField(max_digits=4, decimal_places=2)
class Recipe(models.Model):
name = models.CharField(max_length=200)
ingredients = models.ManyToManyField(Ingredient, through='Recipe_Ingredient', related_name='recipes')
class Recipe_Ingredient(models.Model):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
quantity = models.FloatField()
GRAM = 'g'
KILOGRAM = 'kg'
LITER = 'l'
CENTILITER = 'cl'
UNITY_CHOICES = (
(GRAM, 'Gram(s)'),
(KILOGRAM, 'Kilogram(s)'),
(LITER, 'Liter(s)'),
(CENTILITER, 'Centiliter(s)'),
)
quantityUnit = models.CharField(
max_length=2,
choices=UNITY_CHOICES,
default=GRAM,
)
在我的模板中:
{% for ingredient in recipe.ingredients.all %}
<li>{{ ingredient.name }} - # quantity goes here </li>
{% endfor %}
如何顯示與此配方和成分關聯的Recipe_Ingredient的數量屬性? 在外殼中,我可以執行以下查詢:Recipe_Ingredient.objects.get(ingredient = Ingredient.objects.get(name ='Cenoura'),recipe = Recipe.objects.get(name ='Teste')),但是我不太確定如何在模板中執行此操作以及執行此操作的正確方法是什么。
您可以通過遍歷Receipe_Ingredient
關系來完成Receipe_Ingredient
。
{% for recipe_ingredient in recipe.recipe_ingredient_set.all %}
<li>{{ recipe_ingredient.ingredient.name }} - {{ recipe_ingredient.quantity }} </li>
{% endfor %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.