我可以将django图像裁剪(ImageCroppingMixin)也用于django管理列表行视图吗?
我在Djano Admin中有一个工作映像CroppingMixin视图 因此,我可以调整裁剪区域并保存图像及其裁剪设置 但是,当我查看整个“引用”时,我也希望能够以这种方式编辑图片(所有图片都显示为admin.tablerinline视图) 我一直在获取相应图片的列表行视图中的纯文本字段 我的admin.py代码:我可以将django图像裁剪(ImageCroppingMixin)也用于django管理列表行视图吗?,django,admin,inline,Django,Admin,Inline,我在Djano Admin中有一个工作映像CroppingMixin视图 因此,我可以调整裁剪区域并保存图像及其裁剪设置 但是,当我查看整个“引用”时,我也希望能够以这种方式编辑图片(所有图片都显示为admin.tablerinline视图) 我一直在获取相应图片的列表行视图中的纯文本字段 我的admin.py代码: class ReferentieFotoAdmin(ImageCroppingMixin, admin.ModelAdmin): list_display = ('foto
class ReferentieFotoAdmin(ImageCroppingMixin, admin.ModelAdmin):
list_display = ('foto', 'referentie', 'volgnummer', 'op_frontpage', )
ordering =("-volgnummer",)
class ReferentieFotoInline(admin.TabularInline):
model = ReferentieFoto
class ReferentieDetailInline(admin.TabularInline):
model = ReferentieDetail
class ReferentieAdmin(admin.ModelAdmin):
inlines = [
ReferentieDetailInline,
ReferentieFotoInline,
]
ordering = ("volgnummer",)
list_filter = ['datum', 'volgnummer']
class TipAdmin(admin.ModelAdmin):
ordering = ("volgnummer",)
class SiteInfoAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
class KlantAdminSite(AdminSite):
klantInfo = SiteInfo.objects.get(id=1)
site_header = "Websitebeheer voor: " + klantInfo.website_naam + " | " + klantInfo.bedrijfsslogan
index_title = "Sitebeheer - Home"
adminCappaert = KlantAdminSite('CappaertAdmin')
django.contrib.admin.site = adminCappaert
autodiscover()
adminCappaert.register(Referentie, ReferentieAdmin)
adminCappaert.register(ReferentieFoto, ReferentieFotoAdmin)
adminCappaert.register(SiteInfo, SiteInfoAdmin)
adminCappaert.register(DeKlantSpreekt)
adminCappaert.register(Tip, TipAdmin)
adminCappaert.register(ContactBericht)
models.py
有没有想过如何在内联类视图中实现同样的功能 已经谢谢你了 在您的admin.py中
class ImageInline(admin.TabularInline):
model = ImageModel
extra = 0
def formfield_for_dbfield(self, db_field, **kwargs):
crop_fields = getattr(self.model, 'crop_fields', {})
if db_field.name in crop_fields:
kwargs['widget'] = image_cropping.ImageCropWidget
return super(ImageInline, self).formfield_for_dbfield(db_field, **kwargs)
此解决方案与Django 1.8.x配合使用非常好解决方案:类ReferenceDetailInline(ImageCroppingMixin,admin.TableLine):model=ReferenceDetail
class ImageInline(admin.TabularInline):
model = ImageModel
extra = 0
def formfield_for_dbfield(self, db_field, **kwargs):
crop_fields = getattr(self.model, 'crop_fields', {})
if db_field.name in crop_fields:
kwargs['widget'] = image_cropping.ImageCropWidget
return super(ImageInline, self).formfield_for_dbfield(db_field, **kwargs)