form example errors crispy bootstrap python django django-forms django-crispy-forms

python - example - El objeto ''FormHelper'' no tiene atributo ''append'' mientras usa crispy_forms en django



form django (2)

Aparentemente, la aplicación auxiliar de formulario ha cambiado, necesita add_input lugar de append ahora:

Aquí está el ejemplo directamente de los documentos :

from crispy_forms.helper import FormHelper from crispy_forms.layout import Submit class ExampleForm(forms.Form): [...] def __init__(self, *args, **kwargs): super(ExampleForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_id = ''id-exampleForm'' self.helper.form_class = ''blueForms'' self.helper.form_method = ''post'' self.helper.form_action = ''submit_survey'' self.helper.add_input(Submit(''submit'', ''Submit''))

Soy nuevo en Django, y estoy tratando de diseñar formas con formas crujientes. Tengo un formulario en mi aplicación que resulta ser una forma de modelo, y he seguido lo que se ha dicho aquí https://stackoverflow.com/a/13201588/1076075 para hacer que ModelForm funcione con crispy_forms, pero obtengo este error:

''FormHelper'' object has no attribute ''append''

Así es como se ve mi código en forms.py :

from django import forms from models import Ticket, Ticketuser from crispy_forms.helper import FormHelper from crispy_forms.layout import Submit, Layout, Fieldset, ButtonHolder from crispy_forms.bootstrap import FormActions class AddTicketForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(AddTicketForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.append(Submit(''save'', ''save'')) class Meta: model = Ticket fields = (''id'', ''comment'') def process(self): data = self.cleaned_data data = data[''comment''] return data

¿Cómo superar esto y diseñar el formulario de la forma en que quiero?


FormHelper nunca tuvo un método de adición AFAIK. Lo que sí tiene un botón para append es el diseño:

self.helper.layout.append(HTML(''<p>whatever<p>''))

http://django-crispy-forms.readthedocs.org/en/latest/dynamic_layouts.html#manipulating-a-layout

Para que esto funcione, debe tener un conjunto de diseño:

self.helper = FormHelper() self.helper.layout = Layout(''field_1'', ''field_2'')

O tenga un diseño predeterminado establecido para usted http://django-crispy-forms.readthedocs.org/en/latest/dynamic_layouts.html#formhelper-with-a-form-attached

http://django-crispy-forms.readthedocs.org/en/latest/dynamic_layouts.html#manipulating-a-layout

Tuve un error tipográfico en mi otro ejemplo de , que te indujo a error, lo siento.