我在我的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)
根据官方指南,它足以看到管理面板中增强的选择区域,但我没有得到它。相反,我得到了这个。
没有裁剪选项。
请帮我解决这个问题。
答案 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
。