Есть ли способ показать графику Django Matplotlib в списке моделей?

Я добавил график, который показывает % пользователей, имеющих не стандартное изображение на моей платформе, и я могу видеть график без проблем, когда я вхожу в раздел модификации.

Изменить раздел

Но когда я вхожу в список моделей, он отображается так:

Список моделей

Я хочу сделать так, чтобы та же самая картинка отображалась в разделе модификации, но в списке моделей. Мне удалось сделать это с изображениями пользователей, добавив скрипт javascript в html админку, но я не нашел способа сделать это здесь.

{% extends "admin/change_list.html" %}
{% load static %}
{% block content %}


<!-- Render the rest of the ChangeList view by calling block.super -->
<script>
    window.onload = function(){
        textFigure = document.querySelectorAll(".field-figure")
        
    }
    </script>
{{ block.super }}
{% endblock %}

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

figures.py

import matplotlib.pyplot as plt
from login.models import Usuario

def grafico():
    usrsSinFoto = Usuario.objects.filter(profilepicture = "fotos_perfil/foto_default.png").count()
    usrsConFoto = Usuario.objects.all().count() - usrsSinFoto

    labels = 'Usuarios sin foto', "Usuarios con foto"
    sizes = [usrsSinFoto, usrsConFoto]
    explode = (0, 0.1)

    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
            shadow=True, startangle=90)
    ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.

    return fig1

admin.py

class GraficoAdmin(admin.ModelAdmin):
    readonly_fields = ["created"]
    list_display = ("title", "figure", "created")
    ordering = ("title", "created")
    search_fields = ["title"]
    date_hierarchy = "created"


    def __str__(self):
        return Grafico.title

admin.site.register(Grafico, GraficoAdmin)

models.py

from django_matplotlib import MatplotlibFigureField

class Grafico(models.Model):
    title = models.CharField(max_length=200, verbose_name="Titulo")
    figure = MatplotlibFigureField(figure='grafico', verbose_name='Grafico', silent=True)
    created = models.DateTimeField(verbose_name="Fecha de Creacion", auto_now_add=True)

    class Meta:
        verbose_name = "Grafico"
        verbose_name_plural = "Graficos"
        ordering = ["title"]

    def __str__(self):
        return self.title
Вернуться на верх