2
我正在使用Django 1.10.4和MySQL 5.7。Django object.filter未加載所有結果
所以,我有以下型號:
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)
然後我加載的所有圖片對象爲有一定的要求(這可以在幾個線程中運行):
images = models.Image.objects.filter(request_id=req_id).order_by('column', 'row')
的問題是,我我並不總是得到正確的Image對象集合。有時會將它們全部加載,有時它會在加載過程中停下來。我的意思是,我得到例如4個10,或12個圖像對象中的11個。對於單個請求中的圖像,行列對始終是唯一的,但是當發生此問題時,最後加載的圖像對象具有行和列= 0(當保存在DB中的正確元素例如是1,8時)。這怎麼可能?爲什麼我沒有得到任何例外或錯誤?
「這可以在幾個線程中運行」聽起來像是我可能遇到的問題......其他線程在做什麼以及爲什麼使用線程呢? – Sayse
我已經嘗試使用threading.Lock,但沒有成功。加載完整的圖像後,我將在該模型中描述的實際png文件文件上啓動C++應用程序。它需要大約10分鐘才能完成,並且處理所有傳入的圖像,我不能一次只啓動一個。 – Ijon
你有沒有檢查過你的數據庫中的圖像是否真的存在?您是否嘗試過在交易中運行您的視圖? – Maciek