[英]TemplateSyntaxError 'apptags' is not a registered tag library
[英]'filters' is not a registered tag library
我有一個關於模板過濾器的問題。 我已經使用django allauth進行用戶注冊。 我編輯了它的 signup.html 並使用循環來迭代字段以動態顯示它們。 我可以顯示字段但無法定義類型字段。
我所做的是
帳戶/注冊.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 表格在主應用程序中。
標簽庫應該放在app根目錄下的templatetags
目錄下:
查看文檔中的代碼布局:
當 Django 應用程序被添加到
INSTALLED_APPS
,它在下面描述的常規位置定義的任何標簽都會自動加載到模板中。該應用程序應包含一個
templatetags
目錄,與models.py
、views.py
等處於同一級別。 如果該目錄尚不存在,請創建它 - 不要忘記__init__.py
文件以確保該目錄被視為一個 Python 包。
這為我修復了錯誤。 我將此添加到init .py
import pymysql
pymysql.install_as_MySQLdb()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.