我有一个Django查询集,在不同的情况下得到不同的结果,我很困惑。
texts = Text.objects.filter(keywords__icontains=word)
模特:
class Text(models.Model):
views = models.IntegerField(default=0)
keywords = models.CharField(max_length=250)
response = models.CharField(max_length=140)
该字符复制的调用使用./manage.py shell获得预期结果,但在服务器上找不到任何内容。
当我调用Text.objects.all()时它会提取结果,但由于某种原因,服务器上的过滤器找不到与任何其他情况相同的结果。
WHY ???
答案 0 :(得分:0)
也许这是因为您的生产数据库引擎与您的开发数据库引擎不同(我假设您在本地计算机上运行manage.py shell
)?
请注意,行为 - 尤其是字符串匹配 - 可能会有所不同according to your database backend。
或者您的数据库内容可能不同?
如果manage.py shell
命中同一个数据库,则结果应该相同。您确定您的请求(来自Web服务器)是否正确?检查数据库日志。