【问题标题】:Django - Passing a filtered result to a templateDjango - 将过滤结果传递给模板
【发布时间】:2011-07-10 19:53:36
【问题描述】:

在我的 Django 视图中,我试图从我的数据库中检索结果,然后使用以下代码将它们传递给我的模板:

f = request.GET.get('f')

  try:
    fb_friends_found= UserProfile.objects.filter(facebookid__in=f).values('facebookid')
    i = fb_friends_found[0] #To get the dictionary inside of the list
    results = i['facebookid'] #To retrieve the value for the 'facebookid' key
    variables = RequestContext (request, {'results': results })
    return render_to_response('findfriends.html', variables)

我使用 manage.py shell 在“try”块中执行了前三行,这工作正常,打印了正确的“facebookid”。 不幸的是,我无法让它在我的浏览器中工作。有什么建议吗?

【问题讨论】:

    标签: django list dictionary filter requestcontext


    【解决方案1】:

    您是否遇到了特定问题,例如异常?

    如果你有一个没有 except 语句的 try 块,我觉得你应该得到某种异常。

    try:
       # something
    except Exception: # but be more specific
       print "exception occurred"
    

    否则,代码看起来不错,如果您的浏览器中没有呈现任何内容,我会查看模板。除非...您在 try 块中隐藏了错误,在这种情况下,您应该删除 try 块并让错误发生以了解问题所在。

    【讨论】:

    • 感谢您的回答...我没有收到任何错误或异常。该视图由单击按钮触发。当我单击按钮时,没有任何返回。但是,当我添加文字而不是变量时: i = fb_friends_found[0] 它工作正常。由于某种原因它不喜欢:i = fb_friends_found[0]
    • 所以你的 try 块没有掩盖问题?视图被渲染但没有任何结果?我会亲自开始将日志语句放入您的代码中,print fb_friends_found 或日志。
    • 谢谢宇治。我解决了这个问题......问题是我是变量'f',好像它是一个列表 - 将它与'facebookid'进行比较 - 实际上是一个字符串。我只是使用 f.split(',') 并解决了问题!感谢您的帮助!
    • 那么你应该得到一个例外——绝对远离激进的尝试/例外!
    猜你喜欢
    • 2013-02-09
    • 2015-08-29
    • 2012-04-05
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2011-10-20
    • 2010-10-28
    • 2013-09-15
    相关资源
    最近更新 更多