2012-10-25 34 views
0

它看起來像一個愚蠢的錯誤,但我沒有看到它((我看不到my_error模板值Django的 - 不要看my_error值在HTML

這裏是我的views.py

def tasks(request, my_error=''): 
    print my_error.encode('utf8') 
    user = request.user.username 
    try: 
     fio = Worker.objects.get(login=user) 
    except Worker.DoesNotExist: 
     fio = 'Нет такого пользователя' 
    if user not in admins: 
     tasks = Task.objects.filter(worker=fio) 
    else: 
     tasks = Task.objects.filter() 
    # here I can still see value of my_error 
    print my_error.encode('utf8') 
    return render_to_response('tasks.html',{'user':user,'fio':fio,'tasks':tasks, 'my_error':my_error}) 

我的模板:

{% extends "base.html" %} 
{% block title %} 
Список тикетов 
{% endblock %} 
{% block style %} 
<meta http-equiv="refresh" content="60"> 
{% endblock %} 
{% block content %} 
    Привет, {{ fio.fio }} 
<br /> 

{# {% if my_error %} #} 
<h1>{{my_error}}</h1> 
{# {% endif %} #} 

<ol> 
    {% for task in tasks %} 
     <li><a href="../task/{{task.id}}">{{task.name}}<a></li> 
    {% endfor %} 
</ol> 
<a href="/new_ticket/">Добавить задачу</a> <br /> 

{% endblock %} 

在這裏,我呼籲任務()與my_error:

tasks(request, my_error=u'Такой задачи нет. Возможно она была уже удалена') 

但是,如果我用

return render_to_response('tasks.html',{'user':user,'fio':fio,'tasks':tasks, 'my_error':'my_error'}) 

我看到HTML

my_error

。怎麼了?

回答

1
except Task.DoesNotExist: 
    print 'here' 
    tasks(request, my_error=u'Такой задачи нет. Возможно она была уже удалена') 

應該

except Task.DoesNotExist: 
    print 'here' 
    return tasks(request, my_error=u'Такой задачи нет. Возможно она была уже удалена') 

PS:粘貼在最初發布您的代碼的顯著部分,所以其他人可能根本不知道什麼是怎麼回事withoud在評論(又名挖:粘貼位查看任務()的名稱)

+0

嘿,那正是我所說的!如果我使用my_error,我什麼都看不到,但是如果我傳遞一個字符串 - 我可以看到它。看我的代碼!在views.py中,我傳遞了一個變量... – Ishayahu

+0

aw對不起,完全不瞭解它......你能圍繞正確的任務調用顯示更多代碼嗎?可能來自您要使用render_to_response返回的任務,該任務返回一個httpresponse,但該任務()調用的地方是什麼?你必須返回任務返回的值() –

+0

這裏是所有view.py代碼: [鏈接](http://codepad.org/honjRJoR) – Ishayahu