2013-03-25 2 views
0

all_ Мне очень сложно иметь атрибут, который я добавляю в 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 loop как отладочную вещь, чтобы убедиться, что после выхода из цикла 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 %} 

И все отображается (название, идентификатор и т. Д.), Но не «законченная» часть.

Любая идея, откуда это могло произойти? Я урезал код для удобочитаемости, но то, что я не думаю, что все, что я удаляю, имеет здесь значение.

Спасибо!

EDIT:

Вот вид (странно отступы из 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

думаю, вы забываете называть 'спасать()' метода на распространение информации изменения в БД вы сделали в модельном объекте : 'result.finished =" it works "result.save()' –

+0

@catherine: Я не уверен, что понял ваш ответ? Все остальные компоненты из этого представления работают, я просто добавляю атрибут, который не хочет отображаться. Вся остальная часть менеджера работает как шарм. Aamir, db там не задействован, и я не хочу сохранять новый атрибут, он просто присутствует для целей показа –

+0

@AlbanD вы можете показать представление? То, что у вас есть, должно работать, поэтому я подозреваю, что что-то в представлении вызывает повторную оценку вашего запроса, поэтому вы не ожидаете его. –

ответ

0

я в конечном итоге создание метода законченного() в модели событий и вызвать непосредственно событие. закончен в шаблоне.

Он работает как это, но я до сих пор не знаю, почему моя первая установка не

+0

LOL, вот что мой ответ в вашем вопросе, но кто-то проголосовал за него, поэтому я просто удаляю его. Здесь мало людей, которым не нравится ответ, хотя это правда, они хотят получить ответ, например, ответ. – catherine

Смежные вопросы