Добавить фрагмент в ModelAdmin - PullRequest
2 голосов
/ 19 марта 2010

У меня есть ModelAdmin, где мне нужно вставить html-фрагмент, который не является частью модели (это java-апплет).Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 19 марта 2010

У вас есть пара вариантов. Если апплет связан с одним из полей формы, вы можете создать собственный виджет, который включает апплет. Другим способом было бы переопределить шаблон, используемый формой изменения модели, и включить апплет. Шаблон должен находиться в admin/app_name/model_name/change_form.html в каталоге шаблонов, где app_name и model_name заменены соответствующими значениями для вашей модели.

1 голос
/ 21 марта 2010

Я склонен к многим подобным вещам, чего вы, похоже, и хотите:

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, специальные HTML-фрагменты.obj - рассматриваемый экземпляр модели.Лично я нахожу это более гибким, чем бесконечные подклассы Widgets, ModelForms и др. - ваш пробег может варьироваться в зависимости от того, что вы делаете с сайтом администратора, или от вашего более ортодоксального объектно-ориентированного убеждения;в любом случае полезно знать, как это сделать.

...