0
我遇到有关模板过滤器的问题。我已经使用django allauth进行用户注册。我编辑了它的signup.html和使用循环遍历字段以动态显示它们。我可以显示字段但不能定义类型字段。“过滤器”不是已注册的标签库
我所做的是
帐户/ signup.html
{% load filters %}
<form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}">
{% csrf_token %}
{% for field in forms.visible_fields %}
<input type="{{ field.field.widget|input_type}}" name="{{ field.name }}" id="{{ field.id_for_label}}" class="form-control">
{% endfor %}
</form>
主要的应用程序内模板过滤器(filters.py)
from django import template
register = template.Library()
@register.filter('input_type')
def input_type(ob):
return ob.__class__.__name__
模板位置
'DIRS': [os.path.join(BASE_DIR, 'templates')
因为我使用django allauth我应该在哪里放置我的模板过滤代码?使用名字和姓氏在主应用程序内部注册表单以扩展allauth表单。
是的,我这样做,但我不知道我应该在哪里放置我的templatetags目录。因为我使用allauth包进行用户注册。但是我的注册表单在主应用程序中意味着我必须将其放入主应用程序中。我对吗?我会试试这个。 – milan
“templatetags”目录的位置与注册表格的位置无关 –
我仍然收到相同的错误。我创建了一个名为templatetags的文件夹,其中我创建了两个文件一个__init__.py和另一个filters.py与上面的代码。然后我使用{%load filters%}作为filters.py加载了帐户/ signup.html中的过滤器,然后在{{field.field.widget | input_type}}}类型字段中填写了过滤器,但仍然得到同样的错误 – milan