【问题标题】:Django objects.all() empty query set, not empty in shellDjango objects.all() 空查询集,在 shell 中不为空
【发布时间】:2015-12-27 07:46:31
【问题描述】:

过去 2 年我一直在使用 Django,完全没有问题,我不是新手。

我最近为模型创建了一个新属性并将其添加到 mysql 数据库中。

每当我在“views.py”中使用此属性过滤内容时,我都会得到一个空集,每当我使用“manage.py shell”使用相同的代码行时,它都会返回预期的查询集。

我试过重启httpd服务,mysqld服务,我也重启过系统但是什么都没有发生。

有人知道如何绕过这个问题吗?

这是我用来调试此问题的代码:

壳牌: 它不会让我发布图片,所以这里是代码:

>>>Session.objects.filter(cancellation_session=True)
>>>[<Session: Zumba Toning (Ladies)>]

views.py:

def gym_day2(request):
    return HttpResponse(str(Session.objects.filter(cancellation_session=True)))

Http响应:

[]

请帮忙!

【问题讨论】:

  • 你运行的是哪个版本的 Django?

标签: python mysql django amazon-ec2


【解决方案1】:

添加 . values 或 .values_list() 语句后,Session.objects.filter(cancellation_session=True).values(´field´)

【讨论】:

  • 它起作用了,但我需要一个合乎逻辑的解释。因为否则我要换职业了。
  • 在使用ORM的时候想要得到一个过滤值需要加上values_list()或者values(),但是在这两种情况下你都获得了正确的查询,例如你可以使用"session = Session.objects.filter (cancellation_session = True)" 就像另一个查询 "otro_query = sub_session.objects.filter (idsession = session)" 的一个实例,它可以工作
猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 2013-04-22
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 2020-08-27
相关资源
最近更新 更多