Answer a question

I want to change & to and in the my page's meta description.

This is what I tried

{% if '&' in dj.name %}
    {{ dj.name.replace('&', 'and') }}
{% else %}
    {{ dj.name }}
{% endif %}

This doesn't work. It still shows as &

Answers

dj.name.replace('&', 'and') You can not invoke method with arguments.You need to write a custom filter.

Official guide is here:

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

Ok, here is my example, say, in an app named 'questions', I want to write a filter to_and which replaces '&' to 'and' in a string.

In /project_name/questions/templatetags, create a blank __init__.py, and to_and.py which goes like:

from django import template

register = template.Library()

@register.filter
def to_and(value):
    return value.replace("&","and")

In template , use:

{% load to_and %}

then you can enjoy:

{{ string|to_and }}

Note, the directory name templatetags and file name to_and.py can not be other names.

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐