Crispy: Helper Layout has no effect on form.

56 views
Skip to first unread message

Mohammad Etemaddar

unread,
Mar 20, 2019, 11:32:31 AM3/20/19
to Django users
Here is my model form which is rendered by crispy.
When I change the layout, ordering, or adding elements, has no effect on rendered form.

Do you see any problem in the code?

Thank you


class FactoryForm(forms.ModelForm):
class Meta:
model = Factory
fields = ('name','field', 'description', 'manager','province','city','address','phone_number','logo')

province = forms.ModelChoiceField(queryset=Province.objects.all())

def __init__(self, *args, **kwargs):
super(FactoryForm, self).__init__(*args, **kwargs)

self.helper = FormHelper(self)
self.helper.form_tag = False
self.helper.disable_csrf = True

self.helper.layout = Layout(
Fieldset(
'Legend',
'name', 'field', 'description', 'manager', 'province', 'city', 'address', 'phone_number',
HTML("""<img class="img-responsive" src="{{ MEDIA_URL }}{{ form.logo.value }}">"""),
'logo',
)
)

if self.instance.name:
self.fields['province'].initial = self.instance.city.province
self.fields['city'].queryset = City.objects.filter(province=self.instance.city.province)

Mohammad Etemaddar

unread,
Mar 26, 2019, 9:30:01 AM3/26/19
to Django users
Found the answer.
I used crispy like this:
{{ form|crispy }}

But We should use like this to get form helper effect:

{% crispy form %}

mohamed khaled

unread,
Mar 26, 2019, 9:50:37 AM3/26/19
to Django users
Are you add in setiings.py file  
installed_apps = [
.....
'crispy_forms',
]
CRISPY_TEMPLATE_PACK = 'bootstrap4'


 then add this in page template you want to render 

 {% load crispy_forms_tags %}
Reply all
Reply to author
Forward
0 new messages