Если вы используете изображения webp по умолчанию в Django, как бы вы go преобразовали изображения webp из базы данных в png или jpg только в браузерах Apple Safari, сохраняя при этом webp по умолчанию для всех остальных браузеров?
Подойдет ли Pillow для этого? Как бы вы объединили его в представления и шаблон для l oop?
from PIL import Image
image = Image.open("test.webp").convert("RGB")
image.save = ("test.jpg", jpeg)
image.save = ("test.png", png)
Определить агент пользователя:
https://pypi.org/project/django-user-agents/
Может быть, альтернативой было бы обнаружение пользовательского агента в заголовках?
Нужно ли сохранять преобразованные изображения в папке имя_проекта / media / (где сейчас находится {{object.thumbnail.url}} указывает на? Или это go в имя_проекта / static /? Может быть, изображения могут быть удалены (возможно, задание cron) после закрытия сеанса Safari или перехода на другое представление? Не уверен, что лучший способ сделать это.
Код:
HTML:
{% for object in object_list %}
<img src="{{ object.thumbnail.url }}" alt="{{ object.thumbnail_alt }}"/>
{% endfor %}
Models.py:
class Course(models.Model):
thumbnail = models.ImageField(blank=True, null=True, max_length=255)
thumbnail_alt = models.CharField(blank=True, null=True, max_length=120)
Views.py:
class CourseListView(ListView):
model = Course
template_name = 'courses/course_list.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = self.form
return context
def get_queryset(self):
qs = super().get_queryset()
self.form = form = CourseForm(self.request.GET)
#Queries for form go here
return qs