[英]Django QuerySet Strange Behavior: Same object returned for First and Last element
这是我的模特:
class Film(models.Model):
filmmaker = models.ForeignKey(settings.AUTH_USER_MODEL)
title = models.CharField(max_length=250)
在我看来,用户可以从下拉列表中选择一部电影并查看该电影的细节。
我的观点:
@login_required()
def home(request):
movies = Film.objects.filter(filmmaker=request.user)
# I added the following to debug. Assume there are 4 elements in the queryset
print movies[0].title, movies[3].title
print movies[1].title, movies[2].title
...
控制台输出是这样的并且错误:
title1 title1
title2 title3
但是,当我运行manage.py shell并手动创建查询集时,
>>> movies = Film.objects.filter(filmmaker__email='email@email.com')
>>> print movies[0].title, movies[3].title
>>> print movies[1].title, movies[2].title
输出如预期:
title1 title4
title2 title3
这里发生了什么? 我哪里错了? 我该怎么办才能修复它? 似乎无法理解这种奇怪的行为
如果没有看到整体数据库结构和数据,我认为我不能帮助你。
但有一点需要注意的是,在第一个实例中,您基于请求对象进行查询,第二个基于电子邮件地址进行查询。
也许在查询之前,首先尝试详细说明request.user对象,然后查看name / email / etc是否符合您的预期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.