1。我的项目应用程序文件夹为:service。在service / templatetags.py下,输入以下代码
from jinja2 import contextfunction
from crispy_forms.utils import render_crispy_form
from django_jinja import library
@contextfunction
@library.global_function
def crispy(context, form):
return render_crispy_form(form, context=context)
2.forms.py
class ServiceRequestForm(forms.ModelForm):
class Meta:
model = ServiceRequest
fields = (
'client', 'service_type', 'request_description', 'request_date', 'expected_complete_date'
)
3.Jinja2模板:我的模板位于template / services / servicerequest_form.html下,具有以下代码
{% extends 'services/services_sidebarbase.html' %}
{% block sidebarcontent %}
{# {% load crispy_forms_tags %} removed #}
<h4>Service request form</h4>
<form method="post" >
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
{% autoescape true %}
{{ crispy(form)}}
{% endautoescape %}
<button class="btn btn-primary" type="submit">Save</button>
</form>
{% endblock %}
我试图按照对与jinja2和脆皮形式有关的问题的指示进行操作,但这对我不起作用。当我在jinja2模板中调用crispy(form)时,出现了类似crispy undefined的错误。 django crispy forms with jinja2
在我看来,以上解决方案与我安装的软件包django-jinja
有依赖性。
我已经按照下面的说明安装了酥脆的表格。
https://django-crispy-forms.readthedocs.io/en/latest/install.html#installing-django-crispy-forms
我对django有点陌生。我将jinja2 2.10与Django 2.0和django-crispy-form 1.7.2
一起使用
如果有人指导我解决此问题,我将不胜感激。
谢谢 拉杰什
答案 0 :(得分:0)
您是否已将此标签添加到settings.py中的TEMPLATES中? 像这样:
TEMPLATES = [
{
"BACKEND": "django_jinja.backend.Jinja2",
"APP_DIRS": True,
"OPTIONS": {
"match_extension": ".jinja",
"filters": {
"crispy": "service.templatetags.crispy",
},
}
},
]