Обновление поля FileField в форме Django

Играюсь с FileFiled и пытаюсь обновить форму. Я думаю, что моя проблема исходит из views.py.

У меня есть шаблон, в котором я вижу продукт, и у меня есть возможность обновить продукт, нажав на кнопку обновления.

При нажатии на кнопку обновления я перенаправляюсь на форму, где я могу обновить продукт.

шаблон

    {% for TermsAndConditions in commercial_list %}
            <a class="btn btn-outline-secondary" href="{% url 'update-commercial' TermsAndConditions.id %}">Update
            </a>    
    {% endfor %}

templateform.py

        <form action="" method="post" enctype="multipart/form-data">
                {% csrf_token %}

                <h6>Upload terms</h6>
        {{ form.attachment| as_crispy_field}}

            {% if url %}
            <p>Uploaded file <a href="{{url}}">{{url}}</a></p>

            {%endif%}

        <button type="submit" value="Submit" id="profile-btn" class="btn btn-primary custom-btn">Update</button>
        </form>

Моя обычная форма загрузки (без FileField) выглядит так:

просмотров (без FileField)

def update_commercial(request, termsandconditions_id):
    commercials = TermsAndConditions.objects.get(pk=termsandconditions_id)
    form = TermsAndConditionsForm(request.POST or None, instance=commercials )
    if form.is_valid():
        form.save()
        return redirect('list-commercial')
    return render(request, 'main/update_commercial.html',{'form':form,'commercials':commercials})

Добавив FileField, я решил сделать что-то вроде этого:

просмотров (с FileField)

def update_commercial(request, termsandconditions_id):
    commercials = TermsAndConditions.objects.get(pk=termsandconditions_id)
    form = TermsAndConditionsForm(request.POST or None, request.FILES ,instance=commercials ) #the change being request.FILES
    if form.is_valid():
        form.save()
        return redirect('list-commercial')
    return render(request, 'main/update_commercial.html',{'form':form,'commercials':commercials})

Проблема в том, что когда я делаю это, кнопка обновления в шаблоне становится недействительной (она не перенаправляет на форму обновления).

Думаю, моя проблема в том, как обрабатывать or None и request.FILES вместе. Я пробовал различные комбинации, но ни одна не сработала. Надеюсь, кто-нибудь сможет пролить свет.

(Я добавил модели и url файлы, так как не думаю, что проблема в них, и не хотел делать это сообщение длиннее, чем оно должно быть, но не стесняйтесь, дайте мне знать)

Ок, в конце концов, разобрался.

Размещаю ответ на всякий случай для тех, кому он нужен.

Мне нужно было повторить or None для request.FILES.

def update_commercial(request, termsandconditions_id):
    commercials = TermsAndConditions.objects.get(pk=termsandconditions_id)
    form = TermsAndConditionsForm(request.POST or None, request.FILES or None,instance=commercials )
    if form.is_valid():
        form.save()
        return redirect('list-commercial')
    return render(request, 'main/update_commercial.html',{'form':form,'commercials':commercials})
Вернуться на верх