【发布时间】:2018-05-05 09:10:39
【问题描述】:
我用网格视图制作了图片库,但我不喜欢行的样子 - 垂直照片会破坏一切。由于我不想手动更改图像顺序,因此我正在寻找一种按图像高度或仅图像方向自动对它们进行排序的方法,因此垂直照片会排在一行的底部。
这就是我在 Django 中的模型的样子:
class Photo(models.Model):
title = models.CharField(max_length=150)
image = models.ImageField()
description = models.TextField(blank=True)
category = models.IntegerField(choices=CATEGORIES)
published = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
这是我的 grid_view:
def photos_grid(request):
global cat_list
photos = Photo.objects.order_by('published')
output = {'photos': photos, 'categories': cat_list,}
return render(request, 'photos/photos_grid.html', output)
我尝试了 (how to find height and width of image for FileField Django) 获取图像尺寸的方法,但我得到了
ValueError: invalid literal for int() with base 10: 'height'
我尝试将它放在我的代码中的每一种方式。其他想法(通过在views.py 中手动获取尺寸)可行,但我无法将其与列表中的照片放在一起,以便对其进行排序。
【问题讨论】:
-
您是否考虑过使用 Sorl 只是先将它们全部裁剪并摆脱无用的查询?
-
是的,但是有些照片在裁剪后看起来不正常 - 我前段时间在 Facebook 上遇到过这个问题,并且讨厌缩略图中看不到图片的重要部分。
-
然后将几何图形添加到模型中,即 offset_x 和 offset_y。并分别裁剪。像这样:dpaste.com/2KWFSHE
标签: python django django-views