Django динамически созданное временное изображение не отображается

Я хочу динамически создавать изображение на основе пользовательских данных и отображать его пользователю.

views.py:

class TreatmentTemplateView(TemplateView):
    template_name = "../templates/patient/treatment_detail.html"

    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(*args, **kwargs)
        context["patient_id"] = self.kwargs["patient_id"]
        result = find_treatment(context["patient_id"])
        context = result[0]
        context["patient"] = result[1]
        context['image'] = result[2]
        print(context['image'])
        return context

При find_treatment(context["patient_id”]) генерируется изображение подфункцией find_treatment

fig = sns_plot.get_figure()
img_in_memory = BytesIO()
fig.savefig(img_in_memory, format="png") #dunno if your library can do that.
image = base64.b64encode(img_in_memory.getvalue())

И шаблон содержит:

<img src="data:image/png;base64,{{image}}" />

Изображение не отображается, однако, это проблема с тем, как я ссылаюсь на изображение в шаблоне?

base64.b64encode, вероятно, возвращает байтовую строку. Для преобразования в строку вы можете использовать DEFAULT_CHARSET, определенный в файле настроек django или 'UTF-8'.

from django.conf import settings


image = image.decode(settings.DEFAULT_CHARSET)
Вернуться на верх