所以我建立了这个Lander CMS系统。我希望能够构建动态模板:
function Person(name, family) {
var aName = name;
var aFamily = family;
// define method within the constructor that has access to
// local variables here
this.getFull = function() {
return aName + " " + aFamily;
}
}
var p = new Person("Bob", "Smith");
console.log(p.getFull()); // "Bob Smith"
console.log(p.aName); // undefined, not instance properties
console.log(p.aFamily); // undefined, not instance properties
我有这个基本模板内容不变,它有几个参数" body"," styles"和" javascript":
class LanderTemplate(models.Model):
name = models.CharField(max_length=255, null=False, blank=False)
init_script = models.CharField(max_length=255, null=True, blank=True)
body = models.TextField(null=True, blank=True)
styles = models.TextField(null=True, blank=True)
javascript = models.TextField(null=True, blank=True)
我有这个函数,它接受一个模板模型,将它变成kwargs,并生成一个django Template对象。
CONTENT_BASE = """
{% extends "base.html" %}
{% block body %}
{body}
{% endblock %}
{% block head_script %}
<style type="text/css">
{styles}
</style>
{% endblock %}
{% block post_script %}
<script>
{javascript}
</style>
{% endblock %}"""
当我尝试运行此操作时,出现以下错误:
/ landers / view /
中的KeyError&#39;%延伸&#34;基地&#39;
任何人都知道这里发生了什么?似乎Python from django.template import Template
# Generate a lander template from the database
def get_db_template(template):
data = template.__dict__
content = CONTENT_BASE.format(**data)
return Template(content)
试图将{%extends ...}解析为arg?
这是一个准确的假设吗?
答案 0 :(得分:1)
是的,这是一个精确的假设...如果你想要一个文字,你需要使用{{
{...我认为......也许\{