Через некоторое время я возвращаюсь к django, и я немного смущен тем, как мне следует обрабатывать изображения после их загрузки в класс createview.
Итак, у меня есть это:
class SomeModel(models.Model):
full_name = models.CharField(max_length=200)
email_simple = models.EmailField(max_length = 256)
image = models.ImageField(upload_to='images')
def __str__(self):
return self.full_name
class SomeModelForm(forms.ModelForm):
"""Form for the image model"""
class Meta:
model = SomeModel
fields = ('full_name', 'email_simple', 'image')
<form role = "form" action = "{% url 'upload' %}" enctype = "multipart/form-data" method = "post">{% csrf_token %}
{{ form.as_p }}
<button type = "submit">Upload</button>
</form>
Он отлично работает, как и при загрузке изображения, но, прежде чем перенаправить, чтобы сказать, что загрузка завершена, я хотел бы выполнить постобработку этого изображения с использованием пользовательской логики (например, изменение размера с помощью ffmpeg и его дальнейшая обработка). Какой метод в CreateView может позволить мне это сделать? или есть более эффективный способ решить эту проблему?
Спасибо.
if form.is_valid():
instance = form.save()
imag = Image.open(instance.image.path)
output_size = (400, 300) # new size
imag.thumbnail(output_size)
imag.save(instance.image.path)
См. Объяснение полностью основанных на коде ответов. Хотя это может быть технически правильным, это не объясняет, почему это решает проблему или должно быть выбранным ответом. Мы должны обучать, помогая решить проблему.