Django Wagtail模板变量是否为“;“自我”;存在于不';t子类页面?
Wagtail新手在这里模板化一个响应,该响应是从基于Django的Django Wagtail模板变量是否为“;“自我”;存在于不';t子类页面?,django,django-models,wagtail,Django,Django Models,Wagtail,Wagtail新手在这里模板化一个响应,该响应是从基于Django的models.Model类派生的,我注意到它确实有{{page}模板变量可用,但没有{self} 只是想确认这是因为{{self}模板变量仅对扩展页面的类可用。在文档中找不到任何关于它的信息 提前感谢, John简短的回答是肯定的,self变量特定于页面。更准确的答案是,对于非页面模型,从模型“派生”响应的想法本身就是一种误解 普通的Django模型对模板或服务HTTP响应一无所知-这种行为特定于Wagtail页面模型。(更具体
models.Model
类派生的,我注意到它确实有{{page}
模板变量可用,但没有{self}
只是想确认这是因为{{self}
模板变量仅对扩展页面的类可用。在文档中找不到任何关于它的信息
提前感谢,
John简短的回答是肯定的,self
变量特定于页面
。更准确的答案是,对于非页面
模型,从模型“派生”响应的想法本身就是一种误解
普通的Django模型对模板或服务HTTP响应一无所知-这种行为特定于Wagtail页面
模型。(更具体地说,Page
模型实现了一种方法service(request)
,该方法呈现一个模板,该模板具有一组特定的可用变量,包括Page
和self
)
如果您遵循通常的Django约定,则可能有如下视图函数:
def show(request, object_id):
my_page = SomeModel.objects.get(id=object_id)
return render(request, 'some_template.html', {
'page': my_page,
})
这里,模板响应来自对render
的调用,并且完全取决于您在该模板上提供哪些变量。在本例中,变量{{page}
将在模板上可用,因为这是我们作为最后一个参数传递给render
。这完全独立于在SomeModel
中发生的任何事情-该模型对模板呈现过程没有影响。对不起,是的,我知道传递到模板的内容就是传递到模板的内容。只是想验证{{self}}
是否来自页面
父类(而不是其他地方),如果它在非摇摆响应中“丢失”,我不会感到惊讶。感谢您的启发/阐述!