首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -如何从自定义模板标记中检索对象?

Django -如何从自定义模板标记中检索对象?
EN

Stack Overflow用户
提问于 2013-03-16 21:44:39
回答 1查看 227关注 0票数 0

我对解决这个问题毫无头绪。

我有一个接收对象的模板标记:

代码语言:javascript
复制
{% score_for_object OBJECT_HERE as score2 %}

问题是我向模板传递了一个来自原始select的上下文:

代码语言:javascript
复制
cursor = connection.cursor()
cursor.execute("select ...") 
comments = utils.dictfetchall(cursor)

为了解决模板标记接受Django对象的问题,我编写了一个模板标记:

代码语言:javascript
复制
'''
This template tag is used to transform a comment_id in an object to use in the django-voting app
'''
def retrive_comment_object(comment_id):
    from myapp.apps.comments.models import MPTTComment
    return MPTTComment.objects.get(id=comment_id)

使用这个模板标记,我希望它能正常工作:

代码语言:javascript
复制
{% for item in comments %}
    {% score_for_object item.comment_id|retrieve_comment_object as score2 %}

    {{ score2.score }} {# expected to work, but not working #}
{% endfor %}

我的问题。是否可以从模板标记中检索对象?

诚挚的问候,

EN

回答 1

Stack Overflow用户

发布于 2013-03-16 22:07:07

要获得分数:

代码语言:javascript
复制
from django import template
from myapp.apps.comments.models import MPTTComment

register = template.Library()

@register.simple_tag
def retrive_comment_object(comment_id):
    data = MPTTComment.objects.get(id=comment_id)
    return data.score


{% for item in comments %}
    Score: {% retrive_comment_object item.comment_id %}
{% endfor %}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15450003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档