この場合、{% if %}
タグを使用して条件を追加するか(コンテキストに変数を追加する)、カスタムURLタグを作成することができます。
myapp
templatetags
__init__.py
myapp_urls.py
myapp_urls.py
from django import template
from django.template import Context
from django.template.defaulttags import register
@register.tag(name="custom_url")
def render_map(parser, token):
contents, url_name = token.split_contents()
return CustomURLNode(url_name)
class CustomURLNode(template.Node):
def __init__(self, url_name):
self.url_name = template.Variable(url_name)
def render(self, context):
return reverse(url_name.resolve(context))
テンプレートの場合:
{% load myapp_urls %}
{% custom_url myvar %}
これはテストされていないコードであり、バグが含まれている可能性がありますが、カスタムテンプレートタグを作成することは良い解決策になるはずです。