0
我有一張表,其中包含一個涉及SIM卡的任務列表。如果在任務中使用的所有的模擬市民卡可在同一時間的任務只能做ManyToManyField上的Django查詢填充
表中的示例任務:
Task1 - IMEI1 & IMEI2
Task2 - IMEI1
如果我有IMEI的列表,只有IMEI1,只有我想要有Task2。如果我有IMEI1和IMEI2的列表,我想要Task1 & Task2。
請注意我在這個列表中有一個隨機數的模擬人生。
這裏是我的代碼:
class Sim(models.Model):
msisdn = models.CharField(max_length=20, blank=False, null=False)
imei = models.CharField(max_length=40, blank=False, null=False, default='IMEI')
class taskInQueue(models.Model):
simInvolved = models.ManyToManyField(Sim)
在
taskInQueue
所以我有參與任務的一個或多個Sim
。在一個功能,我試圖讓其中涉及模擬人生遊戲的列表中的所有任務:
sim = getSimInvolved(_imeiList) #_imeiList is a list of IMEI -> Sim is a list of SIm Objects
首先,我在做以下的事情:
tasks = taskInQueue.objects.filter(simInvolved__in=sim, testsStatus='W').distinct().order_by('pk')
的問題是,該查詢,我會具有至少涉及一個模擬人員的所有任務。因此,如果我能以前面的例子,_imeiList=['IMEI1']
,我將得到Task1 & Task2,而我只能得到Task2。
那麼我該如何過濾taskInQueue
,其中所有涉案的模擬市民都在列表_imeiList
?
嗯,事情是我不知道IMEI號碼,我將在我的名單!它可以是一個,它可以是兩個,它可以是三個或五個...所以我不能使用這個:(這就是爲什麼我卡住了:s –
然後使用for循環,我已經更新瞭解決方案。 IMEI,你期待,最大的任務? –
嗯,預計最多4個SIM。如果我鏈過濾器,我將只有任務與列表中的所有SIM卡?所以,如果我拿這個例子,我只會有Task1 –