Как принудительно упорядочить картинки в галерее

StackOverflow https://stackoverflow.com/questions/1738337

  •  20-09-2019
  •  | 
  •  

Вопрос

Я создаю приложение django, в котором есть галерея изображений, и клиент настаивает на том, чтобы изображения отображались в определенном порядке.Я использую интерфейс администратора для загрузки изображений и редактирования их свойств, и у меня есть ImageFile класс в моей модели, который в основном выглядит следующим образом:

class ImageFile(models.Model):
    """represents an image file"""

    # the image description
    description = models.CharField(max_length=45)

    # the actual image
    image = models.ImageFile(upload_to='images') 

    # running number representing the order on the page
    order = models.IntegerField()

    def __unicode__(self):
          return "%s" % (self.description)

    class Meta:
        db_table = 'images'

Я использую IntegerField "заказать", чтобы иметь текущий номер, который будет управлять сортировкой.Я подумал, что должен быть более разумный / лучший способ сделать это (другая модель?), а также иметь возможность легко управлять им через интерфейс администратора.

Это было полезно?

Решение

Я полагаю, вы хотели бы предоставить возможность сортировать изображения пользователю (в любом случае, если вы хотите отсортировать их с помощью time add, лучший способ - упорядочить их по идентификатору), поэтому, если есть модель, подобная Gallery (изображений), возможно, вам следует сохранить кортеж идентификаторов изображений из галереи (в БД в виде текстового объекта).После прочтения приведите его к tuple, и вы получите ожидаемый порядок.Надеюсь, я помогу.

Другие советы

если порядок изображений соответствует порядку их загрузки, вы могли бы использовать временную метку для их упорядочивания,.

Я использовал тот же метод (с целочисленным полем "порядок" в модели) для определения порядка.Однако я настроил администратора так, чтобы он разрешал перетаскивать изображения, принадлежащие альбому, для определения порядка.Когда администратор нажмет кнопку "Сохранить", заказ будет рассчитан автоматически на основе текущего заказа после перетаскивания.Все данные будут отправлены на сервер для сохранения в БД.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top