所以我有一个简单的模板问题。在 URL 视图中,我传递了一个名为“样式”的变量,然后传递了一个包含一堆模型信息的字典。要正确处理它:
{{ style }}
{% for recipe in recipes %}
{{ recipe.recipe_style }}
{% if recipe.recipe_style == style %}
{{ recipe.recipe_style }}
{% endif %}
{% endfor %}
所以这个块应该返回的是:
晚餐 晚餐 晚餐 晚餐 晚餐
因为食谱模型中只有两个条目,都将'Dinner'设置为recipe_style(charfields),并且样式通过视图和urlconf(“r'^(?P[-A-Za-z0- 9_]+)/" 从 URL 'http://.../Dinner/' 中获取 'Dinner')。它返回的是:
晚餐 晚餐 晚餐
这是因为 if 语句返回错误。但为什么?“晚餐”==“晚餐”!我唯一的猜测是格式问题?在将它传递给视图之前,我尝试了 style=str(style) ,但仍然没有用。
编辑:这是外壳中显示的内容:
>>> RecipeStyle.objects.all()
[<RecipeStyle: Dinner>, <RecipeStyle: Lunch>, <RecipeStyle: American>, <RecipeStyle: Italian>, <RecipeStyle: French>]
>>> recipe = Recipe.objects.get(pk=1)
>>> recipe.recipe_style
<RecipeStyle: Dinner>
它在控制台中工作:
>>> if recipe.recipe_style == RecipeStyle.objects.get(pk=1):
... print "poop"
...
poop
那么为什么不在模板中呢?