Django: Изображение на дисплее в администраторском интерфейсе

Я определил модель, которая содержит ссылку изображение. Существует ли способ отобразить изображение в образцовом списке объектов? Моя модель похожа на это:

class Article(models.Model):
    url = models.CharField(max_length = 200, unique = True)
    title = models.CharField(max_length = 500)
    img = models.CharField(max_length = 100) # Contains path to image

    def __unicode__(self):
       return u"%s" %title

Существует ли способ отобразить изображение вместе с заголовком?

31
задан Peter Mortensen 15 March 2010 в 09:51
поделиться

3 ответа

Вы можете создать метод экземпляра модели с другим именем, разрешить HTML-теги для его вывода и добавить этот метод в качестве поля списка. Вот пример:

Сначала добавьте новый метод, возвращающий HTML для включения изображения:

class Article(models.Model):
    ...
    def admin_image(self):
        return '<img src="%s"/>' % self.img
    admin_image.allow_tags = True

Затем добавьте этот метод в список:

class ArticleAdmin(admin.ModelAdmin):    
    ...
    list_display = ('url', 'title', 'admin_image')
60
ответ дан 27 November 2019 в 21:40
поделиться

Вы можете перезаписать административное представление django для вашей модели. См. http://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates для получения дополнительной информации.

Вкратце вам нужно создать шаблон: templates / admin / your_app / article / change_form.html И там добавить html для отображения изображения.

0
ответ дан 27 November 2019 в 21:40
поделиться

http://www.djangosnippets.org/snippets/239/

там, плюс, если вы используете 1.2, вы можете комбинировать вышеуказанное с полями только для чтения.

0
ответ дан 27 November 2019 в 21:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: