/ / Django crispy form with formset não mostra delete checkbox - django, django-crispy-forms

Forma crocante do Django com formset não mostra a caixa de seleção delete - django, django-crispy-forms

Eu tenho alguma estrutura de código muito semelhante a este exemplo: https://gist.github.com/ibarovic/3092910

Tudo está funcionando muito bem, exceto que a caixa de seleção de exclusão após cada elemento Book não é mostrada. Se eu mudar

{% crispy formset formset.form.helper %}

para

{% crispy formset %}

as caixas de seleção de exclusão são mostradas, mas o formulário não funciona mais (b / c as tags de formulário HTML são usadas não apenas uma vez).

Eu suspeito que essas caixas de seleção não são conhecidas poro BookForm (b / c que de alguma forma são adicionados posteriormente pelo inlineformset_factory), para que eles não sejam adicionados ao layout e sejam ignorados. Eu não tenho ideia de como contornar isso.

Respostas:

3 para resposta № 1

Eu encontrei uma solução graças a isso: Django crispy-forms, BaseGenericInlineFormSet & allow_delete

No BookForm (que é repetido várias vezes) nisso, você pode adicionar algo como:

self.helper = FormHelper(form=self) # or manual layout
self.helper.form_tag = False

i = self.helper.layout.fields.index("title")
self.helper.layout.insert(i+1, layout.Field("DELETE"))

O campo de letras maiúsculas "DELETE", em seguida, é adicionado a cada único BookForm ...