我有一个模型,我的实例名为“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 %}
我只需要在表格上方显示图像。
谢谢! 约翰。
请您参考如下方法:
表单是管理模板,可通过 adminform.form 变量获得。您的字段名为 img,因此它会像这样(未经测试):
{% block form_top %}
<img src="{{ adminform.form.img.value }}"/>
{% endblock %}
顺便说一句。根据官方 style guide,python 中的类名应使用 CapitalizedWordsNamingConvention .您应该将模型命名为 UserImage 而不是 user_image。
顺便说一句:show_user_image 是一个方法,而不是一个实例。
