在 Django 中使用继承的块变量作为参数创建 URL

Posted

技术标签:

【中文标题】在 Django 中使用继承的块变量作为参数创建 URL【英文标题】:Create URL with a inherited block variable as argument in Django 【发布时间】:2017-03-07 13:48:22 【问题描述】:

我正在尝试在 Django (1.9) 模板中创建一个 URL,该模板将继承的块变量解析为参数。所以

href="% url 'overview:detail' '% block test_id %% endblock %' %"

使用继承自子模板的 test_id,例如:

% extends 'overview/base.html' %
% block test_id %test.id% endblock %

当我尝试执行此操作时,会出现以下错误:

/testviewer/ 处的模板语法错误

无法解析余数:''%' from ''%'

如何预防?

【问题讨论】:

【参考方案1】:

我不认为你能做到,但我假设你只想要一个测试对象的详细信息页面,所以你可以做的是为 test 实例定义 get_absolute_url 方法

def get_absolute_url(self):
    return reverse('overview:detail', args=[self.pk])

那么在你的模板中你只需要 test.get_absolute_url

【讨论】:

以上是关于在 Django 中使用继承的块变量作为参数创建 URL的主要内容,如果未能解决你的问题,请参考以下文章

将 DJango 模板变量作为输入参数传递

在 django 模板中使用相同的块根据变量显示不同的信息

Django 内置模板标签和过滤器

在 Django 模板中使用外键作为变量

接受布尔参数的 Django 自定义模板标签

Python学习---django模板继承180123