Сохранение загруженного файла в Django, HTML

Я не использую template form. Я передаю через регистрационную форму имя, фамилия, и мэйл, и прикрепленный файл. У меня получилось сохранить все данные кроме прикрепленного файла.

вот форма index.html

  <form action="{% url 'home' %}" method="POST">
    {% csrf_token %}
    <div class="form-row">
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <input type="text" class="form-control form-control-lg" placeholder="Имя" name="first_name">
      </div>
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <input type="text" class="form-control form-control-lg" placeholder="Фамилия" name="last_name">
      </div>
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <input type="text" class="form-control form-control-lg" placeholder="Номер телефона" name="phone_number">
      </div>
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <input type="email" class="form-control form-control-lg" placeholder="Электронная почта" name="email">
        <input type="hidden" name="P" value="S">
      </div>
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <input type="file" class="form-control-file btn-secondary btn-lg btn-block" placeholder="Вложите файл" name="file">
      </div>
      <div class="col-12 col-md-9 mb-2 mb-md-1">
        <button type="submit" class="btn btn-block btn-lg btn-primary">Зарегистрироваться!</button>
      </div>
    </div>
  </form>

Вот мой views.py, мне кажется я не правильно передаю загруженные файлы

def index(request):
    if request.method == 'POST':
        first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        phone_number = request.POST.get('phone_number')
        email = request.POST.get('email')
        status = request.POST.get('P')
        files = request.POST.FILE('file')
        print(first_name,last_name,phone_number,email,status,files)

        s=UserReg(first_name=first_name,last_name=last_name,phone_number=phone_number,email=email, status=status, presentation = files)
        s.save()
    return render(request, 'index.html')

и вот мои модели

def upload_my_file(instance, filename):
    return '/'.join((instance.presentation.first_name,filename))



class UserReg(models.Model):
    CHOICES = (
    ('P', 'Участник'),
    ('S', 'Выступающий') 
    )
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    phone_number = models.CharField(max_length=15)
    email = models.EmailField(max_length=30)
    status = models.CharField(max_length=100, choices=CHOICES, default='P')


    def __str__(self):
        return self.first_name


class DownloadedFiles(models.Model):
    presentation = models.ForeignKey(UserReg, on_delete=models.CASCADE, verbose_name='Презантация')
    source_file = models.FileField(upload_to= upload_my_file, verbose_name='Файл')

    class Meta:
        verbose_name_plural = 'Презентации'

Ответы (0 шт):