Django object.filter未加载所有结果

时间:2017-01-16 09:09:15

标签: python mysql django

我正在使用Django 1.10.4和MySQL 5.7。

所以,我有以下模型:

class Image(models.Model):
    request = models.ForeignKey(Request, on_delete=models.CASCADE)
    customID = models.CharField(max_length=128, null=True)
    status = models.IntegerField(default=0)
    row = models.IntegerField(default=0)
    column = models.IntegerField(default=0)

class Request(models.Model):
    name = models.CharField(max_length=128, null=True)

然后我为一些Request加载所有Image对象(这可以在几个线程中运行):

images = models.Image.objects.filter(request_id=req_id).order_by('column', 'row')

问题是,我并不总是得到正确的Image对象集。有时它会加载它们,有时它会在装载过程中停止。我的意思是我得到例如10个中的4个,或12个Image对象中的11个。对于单个请求中的Image,行 - 列对始终是唯一的,但是当出现此问题时,最后加载的Image对象具有行和列= 0(当正确的那些,保存在DB中时为例如1,8)。这怎么可能?为什么我没有得到任何例外或错误?

1 个答案:

答案 0 :(得分:0)

令人惊讶的是,该问题并未与线程直接相关。最近几周发送到系统的图像数量和大小都增加了(大小的情况下大约是10倍),我没有考虑到这一点。在某些情况下,当所有图像都没有保存时​​,我试图加载请求图像的速度太快。好吧,我不会两次犯同样的错误。