Django queryset添加的属性未显示在模板中

时间:2013-03-25 00:40:00

标签: django templates

all_I我很难有一个属性,我正在添加到QS中以显示在我的模板中。

我有一位看起来像这样的经理:

def created_by(self, _userProfile, dateGt=None, dateLt=None):

    results = self.filter(creator=_userProfile, ...) //Some QS here

    for result in results:
        result.finished = "It works!"
    for result in results:
        print result.finished
    return results

这在我的控制台中打印:(我有2个事件)。我做了双循环作为调试的东西,以确保退出for循环后数据仍然存在。

    It works!
    It works!

然后我打电话给经理:

    events = Event.manager.created_by(some stuff here).order_by('-id')

然后是奇怪的部分:我将上面一行的结果传递给模板并显示类似的内容:

{% for event in all_events %}
    <li><a href="{% url "edit_event" event_id=event.id %}">{{ event.title }} Finished:{{ event.finished }}</a></li>
{% empty %}
    <em>{% trans "NOTHING" %}</em>
{% endfor %}

一切都显示出来(标题,身份等)但不是“完成”部分。

知道哪里可以来自哪里?为了便于阅读,我修剪了代码,但我不认为我删除的任何内容与此相关。

谢谢!

编辑:

这是视图(因为stackoverflow 4空格的东西而奇怪的缩进)

def homepage(request):
variables = {}
if request.user.is_authenticated():
    datenow=datetime.now()
    me = request.user.get_profile()
    variables['all_events'] = Event.manager.created_by(me).order_by('-id') [:20]
context_instance = RequestContext(request)
template_name = "common/homepage.html"
return render_to_response(template_name, variables, context_instance)

1 个答案:

答案 0 :(得分:0)

我最终在Event模型中创建了一个finished()方法,并直接在模板中调用event.finished。

它是这样的,但我仍然不知道为什么我的第一次设置不是