<p>好吧,在经历了几天的沮丧之后:)我解决了它,至少对于我的项目来说,而且目前只针对模型,但是对于ModelInstance和Views,几乎我以后会解决的,在我的例子中也有同样的问题。我对Django比较陌生,所以可能存在更好的解决方案,我找到了这个。在</p>
<p>我使用Django1.6.4,Python2.7,多语言项目(DjangoTransmeta用于模型转换)</p>
<p>问题是:
1模型、模型实例和视图中的变量替换不起作用。因此,如果我们将一个对象传递给djangoso,它将不会替代例如{{product}}},{产品名称}}变量。根据文件,它应该。问题是,模型在后端.py,ModelBackend类。函数_resolve_value不将object传递给函数_resolve,该函数本应使用对象属性填充元标记。下面是一些对我有用的函数,稍加修改。在</p>
<pre><code>def _resolve_value(self, name):
value = super(ModelMetadataBase, self)._resolve_value(name)
try:
return _resolve(value, self._content_object)
except AttributeError:
return value
def _resolve(value, model_instance=None, context=None):
""" Resolves any template references in the given value. """
if isinstance(value, basestring) and "{" in value:
if context is None:
context = Context()
if model_instance is not None:
context[model_instance.__class__.__name__.lower()] = model_instance
t = Template(value)
value = t.render(context)
return value
</code></pre>
<p>另外,在文件中基准.py,函数get_linked_metadata我们必须将对象附加到如下元数据实例:</p>
^{pr2}$
<p>问题是2-djangoso对任何语言都使用一个元数据实例,即使使用选项use_18n=True。所以,添加上面提到的_language=language。在</p>
<p>Django搜索引擎优化应用程序相当不错,它拥有SEO所需的一切(如果它有效的话),所以没有理由重新设计轮子。在</p>