Skip to main content
 首页 » 编程设计

python之自定义 django-admin 模板

2025年05月04日27mengfanrong

我有一个模型,我的实例名为“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 是一个方法,而不是一个实例。