На данный момент я нахожусь на своем пути, используя django-imagekit, чтобы показывать эскизы в изображении с большим размером изображения приложения галереи. Для этого я использую «model-method», значит, я создаю миниатюры в модели.Ошибка при использовании django-admin-multiupload и django-imagekit вместе
Теперь с учетом удобства администратора (загружайте сразу несколько изображений), я также хочу реализовать многозадачную форму в режиме администратора. Чтобы немного облегчить работу, я попытался использовать приложение, которое я нашел в GitHub, django-admin-multiupload (я не могу ссылаться на него из-за моей низкой репутации, но это точное имя для него на GitHub). Когда я использую только django-imagekit, все работает отлично, и я получаю красивые миниатюры, как и ожидалось. Когда я использую только django-admin-multiupload, все работает отлично, и я могу загружать несколько изображений, как и ожидалось.
Проблема возникает, когда я использую оба приложения одновременно. Multiupload работает все еще отлично, но когда я открываю представление и фактически реализую миниатюру (только с использованием обоих и не реализуя миниатюру, отлично работает), где должны отображаться миниатюры, я получаю следующую ошибку:
OSError в/галерея/- декодер JPEG не доступен
Вы можете увидеть полную ошибку здесь: http://pastebin.com/gtVYEeG7 Моя путаница начинается при запуске только одно приложение, и она работает. Насколько мне известно, все проблемы PIL не могут присутствовать. Чтобы предоставить больше информации: Я использую virtualENV со следующим списком пакетов:
- пип
- Джанго
- PIL
- pilkit
- Джанго-imagekit
- django- amdin-multupload
Также необходимо предоставить некоторые из моих lementet код, вот он:
Файл: models.py
class Image(models.Model):
"""the model for the images"""
# the foreign key from the event
event = models.ForeignKey('Event', related_name='images',
blank=True, null=True)
# the image itself
# file = models.FileField('File', upload_to='gallery/images/')
file = models.ImageField('File', upload_to='gallery/images/')
image_thumbnail = ImageSpecField(source='file',
processors=[
ResizeToFill(300, 250)
],
format='JPEG',
options={'quality': 40})
# image title to represent it in the admin interface
image_name = models.CharField(max_length=35, default='img')
# publication date of the image
pub_date = models.DateTimeField('date published',
auto_now_add=True)
# for a better representation of the image
def __str__(self):
return self.image_name
Файл: admin.py
(это один в основном, как предложено в примере с Джанго -admin-multipupload repo, можно посмотреть здесь: https://github.com/gkuhn1/django-admin-multiupload/blob/master/example/gallery/admin.py)
from django.contrib import admin
from django.shortcuts import get_object_or_404
from gallery.models import Event, Image
from multiupload.admin import MultiUploadAdmin
# Register your models here.
# allows inline add of single images
class ImageInlineAdmin(admin.TabularInline):
model = Image
# used to define the process_uploaded_file function
# so it will not be duplicated in the Admin-Classes
class GalleryMultiuploadMixing(object):
def process_uploaded_file(self, uploaded, event, request):
image = event.images.create(file=uploaded)
return {
'url': image.file.url,
'thumbnail': image.file.url,
'id': image.id,
'name': image.image_name
}
# admin class for event model
class EventAdmin(GalleryMultiuploadMixing, MultiUploadAdmin):
inlines = [ImageInlineAdmin,]
multiupload_form = True
multiupload_list = False
def delete_file(self, pk, request):
obj = get_object_or_404(Image, pk=pk)
return obj.delete()
admin.site.register(Event, EventAdmin)
# admin class for image model
class ImageAdmin(GalleryMultiuploadMixing, MultiUploadAdmin):
multiupload_form = False
multiupload_list = True
admin.site.register(Image, ImageAdmin)
файла: index.html
<td><img class="img-responsive" src="{{ image.image_thumbnail.url }}" /></td>
Если есть потребность в дополнительной информации, пожалуйста, не стесняйтесь спрашивать. Спасибо заранее, и я ценю любую помощь.
Edit: Сегодня я попробовал другой путь, и признал, что ошибки появляются только к изображениям, которые были загружены с Джанго-админ-Multiupload и нет, если только изображения показали, что были загружены с обычным способом.Возможно, это поможет найти решение.
Кроме того, ссылка на django-admin-multiupload repo на GitHub: [django-admin-multiupload] (https://github.com/gkuhn1/django-admin-multiupload) – mspl