我在Django中的自定义模板标记将模板变量渲染为字符串

时间:2011-05-17 07:57:58

标签: django django-templates

标签的使用 -
{% for x in posts %}
{% render_con_form for shastra x.id %}

而不是传递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)

1 个答案:

答案 0 :(得分: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)