django-image-cropping在管理界面中不起作用

时间:2015-05-15 08:18:06

标签: python django image

我在我的django项目中使用django-image-cropping并遵循官方指南,但我仍然没有得到理想的结果。 这是我的项目文件的片段。

我已将easy_thumbnailsimage_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)

根据官方指南,它足以看到管理面板中增强的选择区域,但我没有得到它。相反,我得到了这个。 enter image description here

  

没有裁剪选项。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

虽然文档中没有介绍,但我发现我需要将模型中的cropping属性添加到我的自定义UserAdmin字段集中:

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