在Django模型内容中使用变量

时间:2013-09-07 11:35:02

标签: python django

我想在我的模型内容中使用url模板标记。

示例:

模特内容:

Car.description = 'this is a link to our main page: <a href="{url home}">home</a>'
template.html中的

<div>{{ Car.description }}</div>

结果

<div>this is a link to our main page: <a href="/">home</a>

是可能的,还是我必须编写自己的模板标签?

提前谢谢 罗马

2 个答案:

答案 0 :(得分:1)

假设你有这个:

car.description = 'this is a link to our main page: <a href="{{ url }}">home</a>'

你可以这样做:

from django.template import Context, Template
from django.core.urlresolvers import reverse


class Car(models.Model):
    def description_with_url(self):
        return Template(self.description).render({'url': reverse('home')})

或在自定义模板标记中使用相同的逻辑而不是方法..

答案 1 :(得分:0)

我无法弄清楚为什么你需要那样做。假设我完全理解你的问题,你试图在模型的字段中存储一些东西,然后在渲染时表现为“动态”。

存储网址的模型字段内容应包含网址,并且只能使用URLField包含网址。

否则,如果您是从其他地方动态构建URL,只需使用模板标记,即url模板标记,因为它是要使用的;它还可以根据特定的URL模式获取参数。即url标记旨在用于模板的上下文中。

如果您更新问题以描述您要实现的目标,请告诉我。但是,在数据级别存储“行为”只是简单地远离。