Моя форма django никогда не является валидной. Почему это происходит?

У меня есть приложение django, в котором я хочу, чтобы пользователь мог загружать видео. Мое представление выглядит следующим образом:

class CreateVideo(View):
    def post(self, request):
        videos = models.Video.objects.all().order_by('-created_on')
        form = forms.VideoUploadForm(request.POST)

        if form.is_valid():
            print('form is valid')
            video = form.save(commit=False)
            video.save()
            print('video uploaded')
        else:
            print('form not valid')

        context = {
            'video_list': videos,
            'form': form,
        }

        return redirect('index')
    def get(self, request):
        videos = models.Video.objects.all().order_by('-created_on')
        form = forms.VideoUploadForm()

        context = {
            'video_list': videos,
            'form': form,
        }
        return render(request, 'videos/upload_video.html', context)

Моя форма:

class VideoUploadForm(forms.ModelForm):
    class Meta:
        model = Video
        fields = ['title', 'description', 'file']

и модель:

class Video(models.Model):
    video_id = models.UUIDField(
        primary_key=True,
        default=uuid.uuid4,
        editable=False,
        unique=True
    )
    title = models.CharField(max_length=50, null=True)
    description = models.CharField(max_length=500, null=True)
    file = models.FileField(null=True)
    created_on = models.DateTimeField(default=timezone.now, null=True)
    at = models.ForeignKey(at, on_delete=models.CASCADE, null=True)

и мой шаблон:

<div>
        <form method="post">
            {% csrf_token %}
            {{ form | crispy }}
            <button>Submit!</button>
        </form>
    </div>

Когда я нажимаю кнопку submit, я получаю: форма не действительна в терминале. Я хочу, чтобы форма была создана, но она просто не действительна. Где проблема?

Устанавливаете ли вы поля title, description и file при отправке формы? Пока что они считаются обязательными для вашей формы, пока вы не установите blank=True на поля модели (подробнее об этом можно прочитать здесь: https://stackoverflow.com/a/8609425/7196167).

Вернуться на верх