在我的模型中,我有一个网址字段:
url = models.URLField(...) # This is a url for an image
在django admin中,它显示为文本。我想要做的是显示图像本身(如缩略图)。
所以我想编辑list_display使用的任何模板,并将该url放入
<img src="...">
标签
我找不到合适的模板进行编辑。
如何做到这一点?
答案 0 :(得分:1)
无需更改任何模板,例如
class FooAdmin(admin.ModelAdmin):
list_display = ('get_url',)
def get_url(self, obj):
return "<img src='{url}' />".format(url=obj.url)
get_url.allow_tags = True
答案 1 :(得分:0)
以下是没有模板修改的快速解决方案
models.py
个文件
class Test(models.Model):
title = models.CharField(max_length=200)
.
.
.
.
logo = ProcessedImageField(upload_to='images/rental/',
processors=[ResizeToFill(291, 167)],
format='JPEG',
options={'quality': 60}, blank=True, null=True)
.
.
.
.
STATUS = (
('active','Active'),
('inactive','Inactive'),
('hidden','Hidden'),
)
status = models.CharField(max_length=10, choices=STATUS, default='active')
def logo_image(self):
return '<img src="/media/%s" height="50px" width="50px"/>' % self.logo
logo_image.allow_tags = True
class Meta:
verbose_name = 'blah'
verbose_name_plural = 'blahsh blah'
admin.py
档案
class TestAdmin(admin.ModelAdmin):
list_display = ( 'title', 'email', 'address', 'www', 'logo_image', 'status')
list_filter = ('status',)
list_display_links = ('logo_image','title',)#to show link on a image
list_editable = ('status',)
注意:您可以使用自己的数据库列代替徽标列。您还需要对def logo_image(self):
方法