2011-07-05 6 views
0

との2つの試験:ジャンゴTemplateSyntax:私は2つのテストを実行しようとしています '..場合、または...'

{!%をprofile.id = 100またはprofile.location == NULLの場合%}

しかし、うまくいかないようです。私はドキュメントでこれがなぜ機能していないのか見当たりませんでした。何か案は?

EDIT:SQL DBに

、profile.locationの値がNULLです。レンダリングされた結果はNoneです。

編集2:

ここは完全なチェーンです。ユーザーの場所を取得する4つの方法があります。あなたが見ることができるように、それは何のNULLはありません...

{% if profile.city.id != 104 or profile.city %} 
     {{profile.city}} 
    {% else %} 
     {% if profile.mylocation != '' %} 
      {{ profile.mylocation }} 
      {% else %} 
       {% if profile.fbconnect == 1 and profile.location != '' and profile.location != "None" %} 
        {{profile.location}} 
       {% else %} 
        {% if profile.sglocation.city %}{{profile.sglocation.city}}{% else %}{{profile.sglocation.country}}{% endif %} 
       {% endif %} 
      {% endif %} 
    {% endif %} 

答えて

0

巨大な混乱です。試してみてください:

{% if profile.id != 100 or not profile.location %} 
+0

感謝答えのためのクリス。私はまだ「なし」と表示されています。 – Emile

+0

まず、 'profile.location ==" None "'はテストできません。 'None'は文字列ではなく、あなたのテンプレートでそのままレンダリングしています。単に変数名だけで変数の存在をテストすることができます。たとえば、{%if profile.location%} {{profile.location}} {%endif%} –

+0

実際にはそのインスタンスは文字列です。 Facebookはたまにあなたに "None"の文字列を与えて、そのテストの理由です。 – Emile

0

を私があなただったら、私は例えば、バックのPythonにすべてのそのロジックをスローします:

class Profile(models.Model): 

    [your model fields and stuff] 

    def get_location(self): 
     [your location logic] 

次に、あなただけの行うことができますテンプレートに:

{{ profile.get_location }} 
+0

うまくいかなかったようです。 profile.cityは外部キーですか?これはうんざりです。 – Emile

+0

もっとコードを投稿したり、何をしようとしているのかもっと話しているとしたら?ビュー内のプロファイルオブジェクトがa)100でないか、またはb)がNoneの場所にある場合、上記のスニペットテストが真である(私はそれを試しました)。 –

+0

すべてを追加しました – Emile

関連する問題