Django и matplotlib создание и сохранение картинок

Пытаюсь реализовать такой функционал.

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

Файл обработчик данных и запись в модель.

import numpy as np
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt
from .models import GetChask
import random
import string


from django.conf import settings

class CheckUserCash():

    def check_income(self, data):
        # создание графика

        plt.savefig(f'mypng.png')

        new_image = GetChask(
            oper_type='dasdasda',
            image=f'mypng.png',
            )
        new_image.save()

файл models

from django.db import models
from django.conf import settings

def user_directory_path(instance, filename):
    return 'telegram_user_img/user_{0}/{1}'.format(instance.created_by.id, filename)

class GetChask(models.Model):
    oper_type = models.CharField(max_length=255, blank=True, null=True)
    is_sended = models.BooleanField(default=False)
    image = models.ImageField(null=True, blank=True, upload_to=user_directory_path)

    @property
    def image_url(self):
        try:
            self.image.file
        except FileNotFoundError:
            return settings.DEFAULT_IMG
        return self.image.url

файл settings

...
MEDIA_URL = '/media/'
DEFAULT_TELEGRAM_IMG = (STATIC_URL + 'no_image.png')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
...

Если пользователь будет сохранять данные через админку, то всё работает корректно. Однако, я не хочу что бы для этого функционала пользователь работал с админкой. Подскажите, как сразу записать картинку графика в модель ?


Ответы (0 шт):