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')
...
Если пользователь будет сохранять данные через админку, то всё работает корректно. Однако, я не хочу что бы для этого функционала пользователь работал с админкой. Подскажите, как сразу записать картинку графика в модель ?