我正在编写一个简单的模板标记,它可以获取一个项目并调用其中一个方法来获取和准备一些数据。我想知道我应该在Node或编译器中调用它? 谢谢你的建议!
答案 0 :(得分:2)
模板标签根本不应该与您的数据库交互。至少不是在与您的模型/业务数据进行交互的意义上。这将违反关注点的分离,这是首先使用MVC(er,MTV)风格框架的主要原因之一。
如果您正在讨论由于某种原因与数据库交互的数据驱动模板标记,只处理表示级别的内容,那么它应该放在Node
内的一个方法中。您的Node
render
方法。
class MyCustomNode(template.Node):
def __init__(self, ...):
...
def render(self, context):
# do your db lookup here
return some_string_using_the_db_stuff