2015-05-15 2 views
4

Я использую django-image-cropping в своем проекте django, и я следил за официальными инструкциями, но все же я не получаю желаемого результата. Вот фрагмент моих файлов проекта.django-image-cropping не работает в интерфейсе администратора

Я уже добавил easy_thumbnails и image_cropping моим INSTALLED_APPS.

settings.py

from easy_thumbnails.conf import Settings as thumbnail_settings 
THUMBNAIL_PROCESSORS = (
    'image_cropping.thumbnail_processors.crop_corners', 
) + thumbnail_settings.THUMBNAIL_PROCESSORS 

models.py

from django.db import models 
from image_cropping import ImageRatioField  
class UserData(models.Model): 
     fullname = models.CharField(max_length=255) 
     user = models.CharField(max_length=70, unique=True, blank=False, null=False) 
     image = models.ImageField(upload_to=generate_filename,blank=False, null=False) 
     cropping = ImageRatioField('image', '180x180') 

admin.py

from django.contrib import admin 
from image_cropping import ImageCroppingMixin 
class UserDataModelAdmin(ImageCroppingMixin, admin.ModelAdmin): 
    # filter_horizontal=['image'] 
    pass 

admin.site.register(UserData, UserDataModelAdmin) 

В соответствии с officia l рекомендует его достаточно, чтобы увидеть расширенную область выбора в панели администратора, но я не получаю ее. Вместо этого я получаю это. enter image description here

Нет опции для обрезки.

Пожалуйста, помогите мне разобраться.

+0

Вы могли бы решить эту проблему? Спасибо ... – lgapontes

+0

Нет поля для обрезки 'ImageRatioField'? потому что эти 3 выглядят правильно. Тот, где вы уронили, будет полем для свойства обрезки – dietbacon

ответ

0

Используйте этот инструмент django-imagekit-cropper, он имеет приятные функции и очень хорошую документацию. вам нужно создать файл form.py и нужно говорить об этом

from django import forms 
    from imagekit_cropper.widgets import ImageCropWidget  
    from .models import UserData 


    class ImageAdminForm(forms.ModelForm): 
     square_150_crop = forms.CharField(widget=ImageCropWidget(properties=Image.square_150_crop_properties, help_text=Image.help['square_150_crop'])) 

     class Meta: 
      model = UserData 
0

Хотя это не рассматривается в документации, я обнаружил, что мне нужно, чтобы добавить атрибут cropping из моей модели в мой заказ UserAdmin fieldsets:

fieldsets = (
    (None, {'fields': ('email', 'password')}), 
    ('Personal info', {'fields': ('first_name', 'last_name', 'gender', 
     'phone', 'address', 'postal_code', 'city', 'student', 'university', 
     'newsletter', 'birthday', 'avatar', 'cropping')}), 

Где мой атрибут image альтернативно имена avatar.

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