0

django テンプレートの変数を比較したい。問題は次のとおりです。ページに一連の写真を読み込んでいます。テンプレートが読み込まれると、すべての写真が含まれます。しかし、ユーザーが編集ボタンをクリックすると、そのユーザーが保存した写真のプロパティのみを編集可能モードにする必要があります。

私のテンプレートには次のものがあります

  {% for img in images.object_list %}
<!-- EDIT VIEW  -->
                {% if view == "edit" %} 
                   {% if user_id_log == img.image.name %} 
                      <<Load Photos if user id matches with logged in user>>
                   {% else %}
                      <<Skip that photo>>

上記の最後の行が機能していません。

user_id_log -- ログインしているユーザーのユーザー ID。render_to_response メソッドでビューから渡す

img.image.name -- その写真を作成したユーザー ID が含まれます。

images.object_list は、画像オブジェクトのリストです。

どうすればこれを達成できるか教えてください

追加した

view.py で型キャストした後、user_id_log を int として渡しています。また、データベースでは img.name も int です。

Views.py

def album(request, pk, view="thumbnails"):

num_images = 30
if view == "full": num_images = 10
album = Album.objects.get(pk=pk)

images = album.image_set.all()
user_id = int(request.user.id)

# add list of tags as string and list of album names to each image object
for img in images.object_list:
    tags = [x[1] for x in img.tags.values_list()]
    img.tag_lst = join(tags, ', ')
    img.album_lst = [x[1] for x in img.albums.values_list()]

d = dict(user_id_log=user_id,album=album, images=images, user=request.user, view=view, 
albums=Album.objects.all(), 
backurl=request.META["HTTP_REFERER"],media_url=MEDIA_URL)
d.update(csrf(request))
return render_to_response("photo/album.html", d)
4

0 に答える 0