在ModelAdmin中添加代码段

时间:2010-03-19 17:02:29

标签: django django-models django-admin

我有一个ModelAdmin,我需要插入一些不属于模型的html-snippet(它是一个java-applet)。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

你有几个选择。如果applet与其中一个表单字段相关,那么您可以创建一个包含applet的自定义小部件。另一种方法是覆盖模型更改表单使用的模板并包含applet。模板应位于模板目录中的admin/app_name/model_name/change_form.html,其中app_namemodel_name将替换为模型的相应值。

答案 1 :(得分:1)

我倾向于做很多这类事情,这几乎就是你想要的东西:

class SomeModelAdmin(admin.ModelAdmin):
    ...
    list_display = (
        'visible',
        'thumbnail',
        'size',
        'url',
    )
    ...

    def thumbnail(self, obj):
        return u'<img src="%s" />' % obj.url

    thumbnail.allow_tags = True

... et voila,ad-hoc HTML片段。 obj是有问题的模型实例。就我个人而言,我觉得这比Winitets,ModelForms等无休止地继承子类更灵活 - 你的里程可能会因你对管理站点的处理方式而有所不同,或者你是否更加正统的面向对象说服;在任何情况下都知道如何做到这一点很有帮助。