Джанго хрустящая форма и jinja2 2 - PullRequest
0 голосов
/ 12 октября 2018

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: мой шаблон находится в шаблоне / 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 и хрустящей форме, но у меня это не сработало.Я получаю сообщение об ошибке, например о хрустящей неопределенности, когда я вызываю crispy (форму) в шаблоне jinja2. Джанго хрустящие формы с jinja2

Мне кажется, что вышеприведенное решение зависит от пакета django-jinja, который я установил.Я установил хрустящую форму согласно инструкции, приведенной ниже.
https://django -crispy-forms.readthedocs.io / en / latest / install.html # installation-django-crispy-forms

Я немного новичок в Джанго.Я использую jinja2 2.10 с django 2.0 и django-crispy-form 1.7.2 Я был бы очень признателен, если бы кто-нибудь помог мне разобраться с этой проблемой.

Спасибо, Раджеш

1 Ответ

0 голосов
/ 12 октября 2018

Вы добавили этот тег в ШАБЛОНЫ в settings.py?Как это:

TEMPLATES = [
    {
        "BACKEND": "django_jinja.backend.Jinja2",
        "APP_DIRS": True,
        "OPTIONS": {
            "match_extension": ".jinja",
            "filters": {
                "crispy": "service.templatetags.crispy",
            },
        }
    },
]
...