Replacing a character in Django template
django, django-templates, python
Solution
`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.
Problem
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 `&`