[Answered ]-Django model based forms – why isn't form valid?

1👍

You need to pass both request.POST and request.FILES [Django-doc], so:

def topic_create(request):
    if request.method == 'POST':
        form = TopicCreationForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('home')
        else:
            print('aaa') # It display in console
    else:
        form = TopicCreationForm()
    context = {'form':form}
    return render(request, 'blog/topic_form.html', context)

In the HTML form, you need to specify that the files should be encoded with the enctype="…" attribute [mdn]:

<form method="post" enctype="multipart/form-data">
    …
</form>

Leave a comment