Django. Загрузка файлов на сервер - Python

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Возник вопрос с загрузкой файла на сайт. У меня по форме формируется файл(word) и мне его нужно загрузить на сервер. В документации там 3 варианта рассмотрено, мне вроде как 3-ий подходит, но я не понимаю почему они не сохраняют форму, а сохраняют экземпляр (instance = ModelWithFileField(file_field=request.FILES['file']) / instance.save() ) Конкретно по моему вопросу: в models.py
Листинг программы
  1. ....
  2. file = models.FileField(upload_to='prop/', blank=True)
в forms.py
Листинг программы
  1. ....
  2. file = forms.FileField(widget=HiddenInput, required=False)
в views.py
Листинг программы
  1. if request.method == 'POST':
  2. form = VisitorsForm(request.POST, request.FILES)
  3. if form.is_valid():
  4. ...обработка в word...
  5. # Сохраняем в word
  6. document_1.write('D:\DjangoProjects\work_pass\propuska\media\prop\\' + str(form.name) + '.docx')
  7.  
  8. form.save()
То есть файл создался, а как загрузить-то как? Заранее спасибо p.s. путь потом надо поменять, знаю)

Решение задачи: «Django. Загрузка файлов на сервер»

textual
Листинг программы
  1. from django.db import models
  2. from django.conf import settings
  3. from django.utils.html import format_html
  4.  
  5.  
  6. class PersonModel(models.Model):
  7.     first_name = models.CharField(max_length=25)
  8.     last_name = models.CharField(max_length=25)
  9.     date_of_birth = models.DateField()
  10.  
  11.     def file_location(self):
  12.         return format_html('<a href="{}">{}</a>'.format(
  13.             settings.MEDIA_URL+'{}-{}-{}.txt'.format(self.first_name, self.last_name, self.date_of_birth),
  14.             'link')
  15.         )

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут