我有一个自定义模板标签来替换空格、制表符、换行符、!、@、#、$、%、&、(,)、.,用破折号:
re.sub('[,@#$%&_.?!\t\n ]+', '-', value)
当我给时,这很好用value parameter explicitly
:
re.sub('[,@#$%&_.?!\t\n ]+', '-', 'نمونه کد')
或者:
value='نمونه کد'
re.sub('[,@#$%&_.?!\t\n ]+', '-', value)
但是在模板中,当我想在对象列表的字段上使用此标签时subject
,它不能正常工作,只是用破折号替换空格:
{% for n in news %}
<a href="{% url CompanyHub.views.getNews n.subject|custom_unicode_slugify,n.pk %}" >{{n.description|safe|truncatewords_html:15}}</a>
{% endfor %}
这是我的客户模板标签:
def custom_unicode_slugify(value):
return re.sub('[,@#$%&_.?!\t\n ]+', '-', value)
register.filter('custom_unicode_slugify', custom_unicode_slugify)
我尝试使用此标签而不使用n|custom_unicode_slugify
,n.subject|custom_unicode_slugify
因为我的模型__unicode__()
方法返回subject field
,但我收到此错误:
Caught TypeError while rendering: expected string or buffer