Форма Django и набор форм не являются действительными

Я пытаюсь сделать представление, содержащее одну форму и один formset, но что-то не получается. И форма и набор форм после проверки .is_valid возвращают false. Я не очень понимаю, почему так происходит

def ProductCreateView(request):

    context = {}
    created_product = None
    form = ProductForm()
    if request.method == 'POST':
        form = ProductForm(request.POST)
        if form.is_valid():
            created_product = form.save()
            print("Successfully created new product: {}".format(created_product))
        else:
            print("form is not valid")
            #print(request.POST) returns csrfmiddlewaretoken ...
            #print(request.FILES) returns file : inmemoryuploadedfile ...
            #print(list(request.POST.items()))
    context['form'] = form

    formset = ProductPhotoInlineFormset()
    if request.method=='POST':
        formset = ProductPhotoInlineFormset(request.POST or None, request.FILES or None, instance=created_product)
        if formset.is_valid():
            created_images = formset.save()
            print("Successfully created new imagest: {}".format(created_images))
        else:
            print("formset is not valid")
    context['formset'] = formset

    return render(request, "Ecommerce/create_product_test.html", context)

мой шаблон - create_product_test.html

{% extends 'base.html' %}
{% block content %}
    <div id="alert-box">
        
    </div>

    <div id="image-box" class="mb-3">
        
    </div>
    <div id="image-box"></div>

    <div class="form-container">
        
        <button class="btn btn-primary mt-3 not-visible" id="confirm-btn">confirm</button>
        <form method="POST" enctype="multipart/form-data" action="" id="image-form">
            {% csrf_token %}
            <div>
                {{form}}
                
                {{formset.management_form}}
                {{formset.as_p}}
                
            </div>
        
            
        </form>
        
    </div>

    
{% endblock content %}

файлforms.py

ProductPhotoInlineFormset = inlineformset_factory(
    Product,
    Photo,
    fields=('file',),
    form=PhotoForm,
    extra=1,

    )

где проблема?

Вы можете узнать, что не так с формой с помощью:

print(form.errors)
print(form.non_field_errors())

и для набора форм:

print(formset.errors)
print(formset.non_form_errors())

Таким образом, вы сможете легко выяснить, почему форма не действительна.

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