2012-05-08 16 views
0

テンプレートの問題があります。 URLビューでは、「スタイル」と呼ばれる1つのvarを渡し、一連のモデル情報を含む辞書を渡します。右あまりにも取得するには、それ:djangoテンプレート==解決できない場合

{{ style }} 
{% for recipe in recipes %} 
    {{ recipe.recipe_style }} 
    {% if recipe.recipe_style == style %} 
     {{ recipe.recipe_style }} 
    {% endif %} 
{% endfor %} 

だから、返す必要があり、このブロックが何であるか:

夕食夕食夕食夕食夕食

レシピモデルで唯一の2つのエントリは、「ディナー」で、両方があるので、 recipe_style(charfields)として設定され、スタイルはビューに渡され、urlconf( "r '^(?P [-A-Za-z0-9 _] +)/"はhttp' urlから 'Dinner' ://.../ディナー/')。それは何を返すことは次のとおりです。

夕食夕食夕食if文が戻って偽来るのでこれは

。しかし、なぜ? "夕食" == "夕食"!私の唯一の推測は形式の問題ですか?ビューで渡す前にstyle = str(style)を試しましたが、まだ動作しませんでした。

EDITは:

>>> 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 

なぜないテンプレートに?

答えて

0

私は間違っていました。私が持っていたif文は、テンプレートに渡されたクエリーセットをフィルタリングしていました。ダム、右?ビューでレシピモデルをフィルタリングし、フィルタリングされたクエリーセットを渡して修正しました。

+0

申し訳ありません。しばらくしていない。私はこのコミュニティに恵まれたいと思っています。本当に申し訳ありません。 – jonc

0

recipe.recipe_styleは実際に'Dinner'と等しいですか?これに失敗する余分なスペースがあるかもしれませんが、ブラウザはそれを同じものとして表示します(ブラウザは複数のスペースを無視して表示します)。以下のようなレシピのためのあなたのビューでpreタグまたはのreprプリントと

するTryラッピング:

print repr(recipe.recipe_style) 

は次に、ページをリロードし、devのサーバーコンソールをチェックし、それが(引用符で)文字列値を表示する必要があります。

関連する問題