2011-07-24 58 views
0

我試圖從一個字符串中創建一個動態模板(我知道,動態模板是一個矛盾),但我遇到了{% trans %}標籤的問題。如果字符串包含:如何解析包含「trans」標籤的字符串作爲Django中的模板?

{% trans %}Hello{% endtrans %} 

然後當我這樣做:

context = RequestContext(request, data) 
    template = Template(text) 
    out_text = template.render(context) 

我得到一個內部服務器錯誤。我已經嘗試在字符串中添加{% load i18n %},但這沒有幫助。我需要做些什麼來使字符串可翻譯?它與html文件工作正常,但我無法讓它與字符串一起工作。如果我將trans標籤取出,它將正確解析模板字符串。

+0

你首先需要知道它在哪裏。嘗試在'settings.py'中設置'DEBUG = true',然後在開發服務器上運行它。堆棧跟蹤+檢查局部變量的能力通常會導致快速啓發。 –

+0

謝謝,能夠調試將幫助很多!但它說的是:'異常類型:TemplateSyntaxError' '異常值:無效塊標記:'trans'' – yuttadhammo

+0

對不起,首先使用'{%load i18n%}',它說:'Exception Value:Searching for值。預期的另一個值,但發現字符串的結尾:trans' – yuttadhammo

回答

0

你確定這個模板是由Jinja而不是Django加載和解析的嗎?

我在我的Django項目中通過Coffin使用Jinja2,並且在模板加載時沒有棺材參與時出現錯誤。

檢查哪個裝載機先找到模板。是Coffin/Jinja還是Django loader?如果它是由Django發現的,它將被Django解析,它不知道如何處理{%trans%} {%endtrans%}塊。

相關問題