自定义django-admin模板

2 投票
1 回答
1978 浏览
提问于 2025-04-17 13:00

我有一个模型,里面有一个叫"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 是一个 方法,而不是一个 实例

撰写回答