2015-11-17 2 views
1

В принципе, я хочу иметь класс модели, который может иметь любое количество изображений под одним именем переменной. Например, что-то вроде этого:Как создать модель ListField в Django?

class ListField(models.Model): 
    image_list = a list of images 

Есть ли способ достичь этого в Django? Если вопрос слишком расплывчатый, я могу подробно объяснить, что именно я пытаюсь сделать, чтобы дать вам, ребята, лучшую идею. Благодаря!

Хорошо, вот подробности: У меня есть модель для Comic на моем сайте. Комическая модель, как и ожидалось, имеет поле, которое является образом комикса. Эти изображения обычно довольно большие и не очень хорошо работают с мобильными телефонами. И я использую bootstrap, чтобы сделать мой сайт отзывчивым. Поэтому я думал, что если я разделим каждый из комических образов на отдельные прямоугольные панели и загружу и сохранил их под одним именем переменной, я бы просто использовал сетчатую систему Bootstrap, чтобы отображать их ответственно.

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

+0

Ну, пожалуйста, объясните больше :) – aumo

+0

@ aumo- haha ​​ok да, вам придется много писать. –

+0

Что было бы полезно знать, что именно вы подразумеваете под изображением – aumo

ответ

3

ListField - это плохой ход с точки зрения хранения большого количества изображений, в частности, поскольку это подразумевает, что вы будете хранить данные как blobs/long strings.

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

например

class Comic(models.Model): 

    title = models.CharField(....) 
    ... etc etc 


class ComicImage(models.Model): 

    comic = models.ForeignKey(Comic, related_name="comic_images") 
    image = models.ImageField(upload_to="see/the/django/docs") 
    order = models.IntegerField(default=0) # increment this for each image in a set 

    class Meta: 
     ordering = ('order',) # automatically order the images 
+0

Хмм имеет смысл, я попробую. Я думал о списке, потому что это просто облегчило бы мою работу администратора, но вы, возможно, правы. –

+0

В admin вы можете [использовать Inline] (https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.TabularInline) для управления 'ComicImages' на' Comic 'admin страница –

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