ModelForm не обрабатывает загрузку - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть ModelForm в django:

class uploadform(forms.ModelForm):
    class Meta:
        model = upload
        fields = ['email', 'title', 'date', 'file']

Из модели:

class upload(models.Model):
    email = models.EmailField()
    title = models.CharField(max_length=100)
    date = models.DateField()
    file = models.FileField()

Вот мой взгляд на обработку формы:

def upload(request):
    if request.method == 'POST':
        form = uploadform(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('upload')

    else:
        form = uploadform()

    context = {
        'form': form
    }

    return render(request, 'content/upload.html', context)

Вот мой HTML:

<div class="site-section mb-5">
  <div class="container">
   <div class="form-register">
     <form method="POST">
         {% csrf_token %}
             <legend>Upload Content</legend>
             <div class="form-group">
               {{ form | crispy }}
            </div>
             <button class="btn btn-outline-info" type="submit">Upload</button>
     </form>

Форма заполняется хорошо, форма позволяет мне прикрепляться, но всякий раз, когда я нажимаю «Загрузить», меня перенаправляют без фактического перехода файла на S3 или форму сохраняются в базе данных. Я знаю, что мое соединение S3 правильное, потому что если я go на admin и создаю выгрузку, файл появится на S3.

Что может быть причиной загрузки файла с form.save()?

1 Ответ

0 голосов
/ 18 апреля 2020

От Виллема в комментарии выше:

"Ваша форма должна иметь как enctype multipart/form-data, так что <form method="POST" enctype="multipart/form-data">"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...