2

私が書いているDjangoテンプレートでいくつかのifステートメントを実行しようとしています。コードは次のとおりです。

{% for object in managers %}
    {{ request.user.username }}
    {{ object.manager }}
    {% if request.user.username == object.manager %}
       You are on the list!
    {% endif %}
{% endfor %}

objects.managerのメンバーであるユーザーとしてログインしているときにこのコードを実行すると、次のように表示されます。

ユーザー名ユーザー名ユーザー名

ただし、ifステートメントには何も表示されません。両方の値が同じである場合、なぜそれが機能しないのでしょうか?これを行うのに最もエレガントな方法ではないことはわかっていますが、現時点ではテンプレートファイルにしかアクセスできず、すぐに何かを立ち上げようとしています:)

ありがとうございました!

4

1 に答える 1

2

object.managerは外部キー(int)であり、request.user.usernameは(str)です。等しくするには、両方の外部キーを使用します。

{% if request.user == object.manager %} 

request.user.usernameを使用することもできます。たとえば、次のようになります。

{% if request.user.username == object.manager.username %}

パターン:

(int) == (int)
('str') == ('str')
(FK or PK) == (int)
(FK or PK) == (FK or PK)
于 2013-03-04T17:48:02.437 に答える