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

视图.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