自定义django-admin模板
我有一个模型,里面有一个叫"show_user_image"的实例:
class user_image(models.Model):
title = models.CharField(max_length=50)
img = models.imageField(upload_to='/home/blabla')
def show_user_image(self):
return u'<img src="%s" />' % self.img.url
show_user_image.short_description = 'User image'
image_img.allow_tags = True
当然,我可以在我的管理员列表中使用它:
list_display = ('title', 'show_user_image')
我的问题是:如何在编辑表单中使用这个实例呢?
像这样:
http://new-media.djangobook.com/content/en/1.0/chapter17/book_extra.png{% extends "admin/change_form.html" %}
{% block form_top %}
<p>Insert meaningful help message here...</p>
{% endblock %}
但我想要的是:
{% extends "admin/change_form.html" %}
{% block form_top %}
{{ MY-INSTANCE-HERE }}
{% endblock %}
我只需要在表单上方显示图片。
谢谢!
约翰。
1 个回答
1
这个表单是通过 adminform.form
这个变量来获取的。你的字段叫做 img
,所以它应该是这样的(还没测试过):
{% block form_top %}
<img src="{{ adminform.form.img.value }}"/>
{% endblock %}
顺便说一下,Python中的类名应该使用大写字母开头的单词命名法,这个规则可以在官方的 风格指南 中找到。你应该把模型命名为 UserImage
,而不是 user_image
。
再说一句:show_user_image
是一个 方法,而不是一个 实例。