Эскиз Sorl не показывает большой палец в AdminImageMixin - PullRequest
7 голосов
/ 27 марта 2011

У меня проблемы с Django 1.3 с использованием django-grappeli и sorl-thumbnail.У меня есть проект, который использует этот код из официальных документов sorl-thumbnails:

# myapp/admin.py
from django.contrib import admin
from myapp.models import MyModel
from sorl.thumbnail.admin import AdminImageMixin

class MyModelAdmin(AdminImageMixin, admin.ModelAdmin):
    pass

Этот проект хорошо работает с сервером отладки, и в форме изменений администратора появляется маленький симпатичный эскиз.

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

www.example.com 
media.example.com (that's serving user uploaded files) 
static.example.com (that's serving static files)

Однако в этом проекте AdminImageMixin работает нормально, за исключением того, что вchangeform для модели:

  • Загружает картинку в правильном месте
  • Она помещает правильный текст в поле базы данных (uploads / + picture_name.jpg) (я проверил это с помощьюphpmyadmin)
  • Это не показывает никаких миниатюр в форме, кроме кнопки просмотра (как я привык)

Вот пример кода:

# models.py
class Category(models.Model):
    name = models.CharField(max_length=200, verbose_name='name', help_text='Name of category')
    description = models.TextField(verbose_name='Description', help_text='You can use Textile')
    icon = ImageField(upload_to='uploads/', blank=True, null=True)

# admin.py
class CategoryAdmin(AdminImageMixin, admin.ModelAdmin):
    pass
admin.site.register(Category, CategoryAdmin)

# settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'grappelli',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    'django_evolution',
    'django_extensions',
    'sorl.thumbnail',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

Есть идеи, что я делаю не так?

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 20 января 2017

. / Manage.py makemigrations thumbnail ./manage.py migrate thumbnail

Если вы получили разрешение, посмотрите на https://stackoverflow.com/a/41541666

0 голосов
/ 10 июня 2013

Я столкнулся с теми же проблемами, оказалось, что установленный мной PIL не имел поддержки jpeg для создания эскизов, хотя он никогда не показывал никаких ошибок.Вот как я это исправил:

  • установить поддержку jpeg

    sudo apt-get install libjpeg libjpeg-dev
    

На MAC:

brew install jpeg
  • переустановите PIL

    pip install -I PIL
    

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

0 голосов
/ 31 января 2014

Проверьте с помощью отладчика, использует ли поле формы правильный виджет.

У меня была такая же проблема, когда я унаследовал от 3 различных классов администратора:

  • django-mptt: MPTTModelAdmin
  • django-модель перевода: TranslationAdmin
  • sorl-thumbnail: AdminImageMixin

Я почти уверен, что (в моем случае) django-modeltranslation переопределяет поведение sorl-thumbnail, изменяя атрибут "widget" поля ImageField из AdminImageWidget.

Я заставил виджет AdminImageWidget для функции get_form следующим образом:

def get_form(self, request, obj=None, **kwargs):
    kwargs = self._do_get_form_or_formset(request, obj, **kwargs)
    form = super(CategoryAdmin, self).get_form(request, obj, **kwargs)

    form.base_fields['background'].widget = AdminImageWidget()

    return form

На данный момент использование смешивания AdminImageMixin не является обязательным.

0 голосов
/ 26 августа 2011

Вы не забыли поместить sorl.thumbnail в INSTALLED_APPS и синхронизировать базу данных после нее? В случае, если вы этого не сделали, нет таблицы для пар ключ-значение, и она не будет работать. Я полагаю, вы используете базу данных по умолчанию в качестве хранилища значений ключей, а не redis.

...