Me encontré con una pregunta mientras trabajaba con django-crispy-forms para la cual no puedo obtener una respuesta. Tengo un diseño de formulario bastante complejo, todo funciona extremadamente bien con formas grotescas hasta el momento.Django crispy-forms, BaseGenericInlineFormSet & allow_delete
Una parte del formulario utiliza un formset genérico en línea. Esto está funcionando tan bien, pero mi problema es que no puedo encontrar la manera de acceder a la casilla de borrado (al tener can_delete = True)
El código correspondiente se ve algo como:
class BaseReleaseReleationFormSet(BaseGenericInlineFormSet):
def __init__(self, *args, **kwargs):
self.instance = kwargs['instance']
super(BaseReleaseReleationFormSet, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_id = "id_relation_form"
self.helper.form_class = 'form-horizontal'
self.helper.form_method = 'post'
self.helper.form_action = ''
self.helper.form_tag = False
base_layout = Row(
Column(
Field('name', css_class='input-small'),
#Field('delete', css_class='input-small'),
css_class='span3'
),
Column(
Field('url', css_class='input-xlarge'),
css_class='span4'
),
css_class='row relation-row',
)
self.helper.add_layout(base_layout)
El nombre y el campo url se muestran con formas crujientes según se desee, pero la casilla de verificación eliminar aparece al final del formulario. Y no puedo acceder a él en el diseño.
¿Alguien sabe cómo solucionar este problema? ¿Algun consejo? ¡Gracias por adelantado!
Para el registro: siempre puede hacer 'self.helper.render_unmentioned_fields = True' y luego todos los campos" ocultos "también se representan. Luego puede verificar cuáles son sus nombres e incluirlos explícitamente en el diseño. –