Невозможно сохранить модельную форму с помощью Django Crispy Forms

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

вот код:

forms.py

class RecipeForm(forms.ModelForm):

    title = forms.CharField(
        label="Titolo",
    )

    method = forms.CharField(
        widget=forms.Textarea(),
        label="Procedimento",
    )

    tags = CustomTagsMultipleChoice(
        queryset=Tag.objects.all(),
        widget=forms.CheckboxSelectMultiple,
        label="Tag",
    )

    hero_image = forms.ImageField(
        label="Immagine",
    )

    class Meta:
        model = Recipe
        fields = ["title", "method", "tags", "hero_image"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.attrs = {
            "hx-post": reverse_lazy("recipes:recipe_create"),
            "hx-target": "#dialog",
        }
        self.fields["tags"].required = False
        self.fields["method"].required = False
        self.fields["hero_image"].required = False
        self.fields["tags"].label = False
        self.helper.layout = Layout(
            FloatingField("title"),
            FloatingField("method", css_class="fl-textarea"),
            "hero_image",
            InlineCheckboxes("tags"),
            Div(
                Submit("submit", "Salva"),
                Submit("button", "Cancella", css_class="btn btn-danger", data_bs_dismiss="modal"),
                css_class="text-end",
            ),
        )

views.py

@login_required
def recipe_create(request):
    if request.method == "POST":
        form = RecipeForm(request.POST,request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponse(status=204, headers={"HX-Trigger": "recipeSaved"})
        form = RecipeForm(request.POST,request.FILES)
        context = {"recipe_form": form}
        return render(request, "recipes/partials/_recipe_create.html", context)
    form = RecipeForm()
    context = {"recipe_form": form}
    return render(request, "recipes/partials/_recipe_create.html", context)

_recipe_create.html

{% load crispy_forms_tags %}
<div class="modal-content">
    <div class="modal-header">
        <h5 class="modal-title">Aggiungi una ricetta</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Chiudi"></button>
    </div>
    <div class="modal-body">
        {% crispy recipe_form %}
    </div>
</div>

если я печатаю request.POST, я получаю эту плохо отформатированную полезную нагрузку

<QueryDict: {'------WebKitFormBoundaryIbg12MlAkITtzU0g\r\nContent-Disposition: form-data; name': ['"submit"\r\n\r\nSalva\r\n------WebKitFormBoundaryIbg12MlAkITtzU0g\r\nContent-Disposition: form-data; name="csrfmiddlewaretoken"\r\n\r\n0DWNbShUV0r8mFSPUNQaSQapC38FQFrMeOtmqFY64H4x3ReOuG7suKqUip7sSpqv\r\n------WebKitFormBoundaryIbg12MlAkITtzU0g\r\nContent-Disposition: form-data; name="title"\r\n\r\ntest\r\n------WebKitFormBoundaryIbg12MlAkITtzU0g\r\nContent-Disposition: form-data; name="method"\r\n\r\n\r\n------WebKitFormBoundaryIbg12MlAkITtzU0g--\r\n']}>

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

Есть идеи? Я создал другую форму с той же логикой, и она работает нормально. Единственная разница в том, что эта форма включает поле изображения и поэтому включает enctype="multipart/form-data"

Пожалуйста, помогите, так как я схожу с ума. спасибо

Я ожидаю, что форма будет проверена и сохранена в БД

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