Вверху вашего шаблона загрузите хрустящие теги:
{% load crispy_forms_tags %}
Затем сообщите Crispy, что нужно отобразить вашу форму, используя тег Crispy:
<div class="modal-body">
{% crispy materialeform materialeform.helper %}
</div>
В вашем forms.py
, вам нужно будет добавить Layout
:
from crispy_forms import FormHelper, Layout
...
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.layout = Layout(
Field('conta', id="form-conto", css_class="form-control", title="Conto")
)
См. Документацию по макету: https://django-crispy-forms.readthedocs.io/en/latest/layouts.html
Затем, когда запрос GET создан для формы, он будет отображаться (более или менее) по вашему желанию. Возможно, вам придется настроить некоторые вещи. Следуйте приведенным выше документам по макету, чтобы попасть туда.
Но ничего из этого не сработает, если вы не передадите форму в шаблоне. Возможно, вы уже делаете это, например, с generi c FormView
, но если нет, вот что вам понадобится в представлении:
from .forms import MaterialeForm
from django.template import RequestContext
def materialeview(request, template_name):
materialeform = MaterialeForm()
# Form handling logic
[...]
return render_to_response(template_name, {'materialeform': materialeform}, context_instance=RequestContext(request))
На RequestContext
, см. https://docs.djangoproject.com/en/3.0/ref/templates/api/#using -requestcontext .
Подробнее о Crispy Forms см. https://django-crispy-forms.readthedocs.io/en/latest/crispy_tag_forms.html.
Наконец, поскольку Crispy Forms много делает в фон, вы можете подумать об устранении путаницы, громко сказав ему сбой. Поместите это в свой settings.py
файл:
CRISPY_FAIL_SILENTLY = not DEBUG
В стороне, позвольте мне сказать, что Crispy Forms, вероятно, вызовет много путаницы, если вы еще не понимаете Django Forms хорошо. Я бы посоветовал начать сначала со встроенных форм Django, а потом становиться хрустящими, когда вы захотите делать более сложные вещи. Здесь должны помочь документы: https://docs.djangoproject.com/en/3.0/topics/forms/.