我的models.py看起来像
class User_Detail(models.Model):
user_image = models.ImageField(upload_to='users',default = 'users/profile.png')
user_image_thumbnail = ImageSpecField(source='user_image',
processors=[ResizeToFill(75, 100)],
format='JPEG',
options={'quality': 60})
我的Admin.py看起来像
class UserAdmin(admin.ModelAdmin):
list_display = ('profile_pic',)
def profile_pic(self, obj): # receives the instance as an argument
url = reverse('admin:%s_%s_change' %(obj._meta.app_label, obj._meta.model_name), args=[obj.id] )
url_string = '<a style="margin: 2px;" href="%s">Update</a>' %(url)
return '<img width=75 height=75 src="{thumb}" />'.format(
thumb=obj.user_image_thumbnail.url,
) + url_string
profile_pic.allow_tags = True
profile_pic.short_description = 'User Picture'
我希望django管理员通过在显示的缩略图旁边提供更新按钮来更新管理列表显示本身的图像字段,并保存它而无需打开条目的更改表单。 我正在使用django-imagekit生成缩略图。
答案 0 :(得分:0)
list_editable
用于编辑django管理列表中的字段,而无需转到更改表单。
但是,应注意使用list_editable
以下几点:
list_editable
中的字段也应包含在list_display
link
更改表单和list_editable
。你的admin.py应该是:
class UserAdmin(admin.ModelAdmin):
// "id" can be replaced by any other field to use as link
list_display = ('id', 'profile_pic',)
list_editable = ('profile_pic',)
// rest of the code
的更多信息