2009-11-15 3 views
1

Я создаю приложение 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 «порядок», чтобы под управлением номер, Контролирует сортировку. Я полагал, что должен быть более умный/лучший способ сделать это (другая модель?), А также иметь возможность легко управлять им через интерфейс администратора.

ответ

1

Я хотел бы предоставить возможность сортировать изображения для пользователя, (в любом случае, если вы хотите отсортировать его по времени, добавьте, лучший способ заказать его по id), так что, если есть такая модель, как Gallery (of images), возможно, вы должны хранить кортеж идентификаторов изображений из галереи (в DB как текстовый объект). После прочтения бросьте его на кортеж, и вы ожидали порядка. Надеюсь, я помогу.

+0

Это, вероятно, лучшая идея, за исключением того, что вы можете лучше хранить информацию о заказе в последовательном формате данных, таком как JSON или Pickle. – jathanism

0

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

0

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

Смежные вопросы