Ich bin bei der Arbeit mit django-crispy-forms auf eine Frage gestoßen, für die ich keine Antwort bekomme. Ich habe ein ziemlich komplexes Formularlayout, mit Cripy-Forms funktioniert alles sehr gut.Django crispy-forms, BaseGenericInlineFormSet & allow_delete
Ein Teil des Formulars verwendet ein generisches Inline-Formset. Dies funktioniert auch, aber mein Problem ist, dass ich nicht herausfinden kann, wie die Lösch-Checkbox zu gelangen (wenn can_delete mit = True)
Der entsprechende Code sieht ungefähr so aus:
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)
Der Name und das URL-Feld werden wie gewünscht mit knusprigen Formen dargestellt, aber das Kontrollkästchen zum Löschen wird am Ende des Formulars angezeigt. Und ich kann nicht darauf im Layout zugreifen.
Kann jemand dieses Problem lösen? Irgendwelche Tipps? Danke im Voraus!
Für das Protokoll: Sie können immer tun 'self.helper.render_unmentioned_fields = true' und dann alle„hidden“Feld wird auch gemacht. Dann können Sie überprüfen, was ihre Namen sind und sie explizit in das Layout aufnehmen. –