2011-05-17 82 views
0

用法 -
{% for x in posts %}
{% render_con_form for shastra x.id %}
在Django我的自定義模板標籤渲染模板變量作爲字符串標記的

不是傳遞x.id的價值這將是它傳遞一個整數 - 「x.id」,因爲它是。
我該如何解決這個問題?

編輯 -

def render(self, context): 
    if self.app == 'broadcast' or self.app == 'shastra': 
     form = CommentsForm() 
    str = render_to_string('comments/form.html', {'form' : form, 'app' : self.app, 'id' : self.id}) 
    return str 

def __init__(self, app, id):
self.app = str(app)
self.id = Variable(id)

+0

你的標籤的任何代碼? – DrTyrsa 2011-05-17 08:01:59

回答

0

嘗試使用下面的接受的答案的解決方案:

Django-Template : Get Variables in a Tag block !

你的模板標籤內

// obj is x.id 
def __init__(self, obj): 
    from django.template import Variable 
    // get the variable value 
    self.id = Variable(obj) 

def render(self, context): 
    id = self.id.resolve(context) 
+0

嘿看看我的編輯,它仍然無法正常工作,我還需要在渲染功能中做些什麼嗎? – Zach 2011-05-17 08:37:07

+0

呈現時抓住VariableDoesNotExist:u'x.id中的鍵[x]失敗查找 - 這是錯誤 – Zach 2011-05-17 08:43:43

+0

您可以發佈__init __()代碼嗎? – BFil 2011-05-17 08:44:53