Django. Передача файла пользователю
Прошу вашей подсказки.
Идея следующая, есть форма, где я предлагаю пользователю дать ссылку например на страничку в ВК, с этой странички я скачаю аватарку и отдам пользователю на скачивание по готовности. Ту самую аватарку, т.е. кнопка на все про все - одна.
def main_site(request):
form = First_Form()
if request.method == 'POST':
post = Post()
link = request.POST['text'] # Ссылка, которую получил от юзера
post.text = link
try:
...Псевдокод получения картинки...
photo.save() # Готово, фотография у меня.
print("well done!")
...Вот тут код, который отдаст пользователю картинку, которую только что получил...
except:
print('error')
pass
return render(request, 'main/base_page.html', {'form': form})
else:
return render(request, 'main/base_page.html', {'form': form})
Никак не могу понять и найти информацию, как передать автоматически пользователю файл? Должен ли я формировать ссылку href и прикручивать к "кнопке"? Или какие-то есть варианты другие?
Спасибо за помощь!
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Если картинку получаешь как байты:
import io
from django.http import FileResponse
def some_view(request):
buffer = io.BytesIO()
buffer.write(picture_content)
buffer.seek(0)
return FileResponse(buffer, as_attachment=True, filename='filename.jpg')
Если картинка файл, то ещё проще
import io
from django.http import FileResponse
def some_view(request):
return FileResponse(open('filename.jpg','rb'))
