如何解决django 中是否有任何解决方案可以将外键列与模板内的主键进行比较,我需要在我的项目中进行特定匹配
我的视图.py 它只是渲染对象就好了。
{% ifequal food_ing.f_name food.f_name %}
{{ food_ing.f_name }} --> 在 for 循环内我检查这个值,它是 (Pizza)。
{{ food.f_name }} -- 这也是模板中 for 循环内的 (Pizza),但我真的不知道为什么条件等于 False...
我的文件.html
{% for food in foods %}
{% for food_ing in food_ings %}
**{% ifequal food_ing.f_name food.f_name %} <---> i need this statement to work**
{% if food_ing.grm_amount == 0 %}
<tr>
<th>{{ food_ing.ing_name }}: </th><td class="text-muted font-weight-light">{{ food_ing.ltr_amount }} l</td>
</tr>
{% endif %}
{% if food_ing.ltr_amount == 0 %}
<tr>
<th>{{ food_ing.ing_name }}: </th><td class="text-muted font-weight-light">{{ food_ing.grm_amount }} g</td>
</tr>
{% endif %}
**{% endifequal %}**
{% endfor %}
{% endfor %}
我的模型.py
class IngFoodName(models.Model):
ing_food_name = models.CharField(max_length=255,null=True)
def __str__(self):
return self.ing_food_name
class Food(models.Model):
f_photo = models.ImageField(upload_to='food_pics',blank=True)
f_name = models.CharField(max_length=40,null=False)
f_price = models.IntegerField(null=False)
f_description = models.CharField(max_length=255,null=True)
p_duration = models.IntegerField(null=False)
def __str__(self):
return self.f_name
class FoodIngredients(models.Model):
f_name = models.ForeignKey(Food,on_delete=models.CASCADE,null=True)
ing_name = models.ForeignKey(IngFoodName,null=True)
ltr_amount = models.IntegerField(default=0,null=True)
grm_amount = models.IntegerField(default=0,null=True)
def __str__(self):
return "Food {0} Ingredient {1} Litre Amount {2} Gram Amount {3}".format(self.f_name,self.ing_name,self.ltr_amount,self.grm_amount)
谢谢,如果有人知道解决方案,我将不胜感激。
解决方法
您是否通过了 food_ings
视图?这个变量从何而来?
您可以打印出 for 循环内的所有值,以查看正在比较的内容以进行调试
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。