Сериализатор возвращает URL медиафайлов в http, а не в https в Django Rest Framework
Я пытаюсь сериализовать модель и одно из ее полей является FileField при вызове serialiser.data он возвращает URL поля FileField в схеме HTTP, а не HTTPS.
Вот мой код
class File(models.Model):
name = models.CharField(blank=True, max_length=100)
file = models.FileField(upload_to='')
class FileSerializer(serialisers.ModelSerializer):
class Meta:
model = File
fields = '__all__'
def files_list(request):
files = File.objects.all()
serialiser = FileSerializer(files, many=True, context={'request': request})
return Response(serialiser.data)
Я получаю
[{
"id": 1,
"name": "demo",
"file": "http://domain-name.com/media/image.png"
}]
Я хочу, чтобы это было
[{
"id": 1,
"name": "demo",
"file": "https://domain-name.com/media/image.png"
}]
<
proxy_set_header X-Forwarded-Proto https;
Затем в настройках Django добавьте следующее:
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
А проблема не устранена, что мне делать, чтобы решить ее?
Текущий запрос необходимо передать сериализатору в контексте, чтобы ваше поле FileField могло определить правильный протокол
serializer = FooSerializer(foo_instance, context={'request': request})
serializer.data