J'essaye de rendre modelformset dans un modèle manuellement et quand j'appuie sur le bouton Soumettre cela donne une erreur disant que "Ce champ est obligatoire.". Je crée modelformset comme ceci: à partir de django.forms ...

1
Daniil 14 mars 2021 à 18:32

1 réponse

Meilleure réponse

L'ensemble de formulaires de modèle ajoute un champ masqué avec la clé primaire des instances de modèle au formulaire pour pouvoir identifier quel objet est lequel. Lorsque vous effectuez le rendu du formulaire manuellement, vous ne le rendez pas, ce qui entraîne une erreur du formulaire car il ne le trouve pas.

Comme meilleure pratique lors du rendu manuel des formulaires, il vous suffit de parcourir les champs masqués d'un formulaire et de les rendre:

{{ formset.management_form }}
{% for f in formset %}
    {% for field in f.hidden_fields %}
        {{ field }}
    {% endfor %}
    <img src="/media/{{ f.image.value}}" style="max-width: 400px;" alt="">
    {{ f.image }}
    {{ f.DELETE }}
{% endfor %}
1
Abdul Aziz Barkat 14 mars 2021 à 15:51