Найти - Пользователи
Полная версия: Использование ImageFields. Несколько изображений.
Начало » Django » Использование ImageFields. Несколько изображений.
1
pal201
Требуется для объекта модели указывать несколько изображений. Как это реализуется при помощи ImageFields?
Для описания изображений лучше использовать таблицу, на которую сделать FK из трубуемой модели или сделать несколько ImageFields в самой модели?
Спасиба за помощь!
ad3w
Как-то так:

class Photo(models.Model):
product = models.ForeignKey(Product, verbose_name=_('product'))
image = models.ImageField(upload_to='products')
title = models.CharField(_('title'), max_length=100, null=True, blank=True)

class Meta:
verbose_name = _('photo')
verbose_name_plural = _('photos')

def __unicode__(self):
return _('Photo #%s') % self.pk
А для админки использовать inlines, чтобы добавлять фото на странице товара.
pal201
1) То есть несколько фотографий добавляются посредством добавления 1 фотографий в таблицу Photo? Нельзя передать сразу несколько фотографий, например в виде списка или кортежа.
Если не сложно, поясните мотод __unicode__ для этой модели, а именно self.pk, откуда мы знаем pk?
2) И для чего подчеркивание в полях _('photo'), _('title'), _('photos')? Так как в таком случае сообщение об ошибке NameError: name ‘_’ is not defined
thecore
pal201
1) То есть несколько фотографий добавляются посредством добавления 1 фотографий в таблицу Photo? Нельзя передать сразу несколько фотографий, например в виде списка или кортежа.
Если не сложно, поясните мотод __unicode__ для этой модели, а именно self.pk, откуда мы знаем pk?
2) И для чего подчеркивание в полях _('photo'), _('title'), _('photos')? Так как в таком случае сообщение об ошибке NameError: name ‘_’ is not defined
1) Конечно можно несколько.
И потом в цикле сохранить
for item in photo_list:
obj = Photo()
obj.product = сам продукт
obj.title = item.title
obj.url = item.url (ну загрузку файлов конечно надо обработать)
obj.save()

self.pk знает джанго, нам знать не надо
2. Это локализация
from django.utils.translation import ugettext_lazy as _ в начале модуля
просто чтобы не писать везде ugettext_lazy
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB