2013-03-25 59 views
0

all_I'm很難有一個屬性,我添加到QS以顯示在我的模板中。Django queryset添加的屬性沒有顯示在模板中

我有一個經理,看起來是這樣的:

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個事件)。我做了double for for循環作爲調試,以確保在退出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 %} 

一切都顯示出來(標題,ID等),但不是「完成」部分。

任何想法可能來自哪裏?我修整了代碼的可讀性,但我不認爲我刪除的任何內容都與此相關。

謝謝!

編輯:

這是我結束了創建的事件模型完成的()方法和直接調用事件的觀點(因爲計算器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

我想你是忘了叫'保存()'方法來傳播完成的更改數據庫在模型對象進行:'result.finished =「它有效」result.save()' – 2013-03-25 00:51:58

+0

@catherine:我不確定要理解你的答案嗎?這個視圖中的所有其他組件都在工作,我只是添加一個不想顯示的屬性。所有其他經理的工作就像一個魅力。 Aamir,數據庫沒有涉及,我不希望保存新的屬性,它只是爲了顯示目的 – 2013-03-25 04:26:34

+0

@AlbanD你可以顯示視圖嗎?你有什麼應該工作,所以我懷疑在視圖中的東西導致你的查詢集重新評估,所以它不是你所期望的版本。 – 2013-03-25 08:44:50

回答

0

。在模板中完成。

它的工作原理是一樣的,但我仍然不知道爲什麼,我的第一個安裝程序沒有

+0

大聲笑,這就是我在你的問題的答案,但有人下了投票,所以我只是刪除它。這裏很少有人不喜歡答案,即使它是真實的,他們想得到答案就像在那裏回答。 – catherine 2013-03-26 16:30:46