[英]Check if a list exists in my database by querySet django
我想驗證我的數據庫中是否存在變量列表我試過這個:
if Magazine.objects.filter(mag=post.mag_no, prodc_magt_no__in[post.cn1,post.cn2,post.cn3,post.cn4)
但是這個查詢集至少檢查一個值,我想檢查整個list:post.cn1,post.cn2,post.cn3,post.cn4
在我的數據庫column = prodc_magt_no
我的數據庫
ID WORK_YMD LINE_NM MODEL_CODE MAG_NO PRODC_MAGT_NO
118002 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4035
118003 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4027
118004 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4039
118005 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4037
118006 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4038
注意: mag=post.mag_no
是必需的!
我不確定這是否只是復制粘貼問題,但代碼行無效。 它缺少=
運算符並正確包含列表。 在沒有看到實際模型的情況下,理論上這會起作用:
if Magazine.objects.filter(mag=post.mag_no, prodc_magt_no__in=[post.cn1,post.cn2,post.cn3,post.cn4]).exists()
exists() 將檢查該過濾器中是否至少有一個條目,它不會告訴你有多少。 正如評論中所建議的那樣, count() 可以為您做到這一點。
我使用的方式是 IF/ELSE 語句
if not Magazine.objects.filter(mag_no=post.mag_no, prodc_magt_no__in=[post.cn1]):
messages.warning(request,'CN1 NG')
elif not Magazine.objects.filter(mag_no=post.mag_no, prodc_magt_no__in=[post.cn2]):
messages.warning(request,'CN2 NG')
elif not Magazine.objects.filter(mag_no=post.mag_no, prodc_magt_no__in=[post.cn3]):
messages.warning(request,'CN3 NG')
elif not Magazine.objects.filter(mag_no=post.mag_no, prodc_magt_no__in=[post.cn4]):
messages.warning(request,'CN4 NG')
elif not (post.cn1 == post.cn2, post.cn2 == post.cn3, post.cn3 == post.cn4):
form.save()
messages.success(request, 'Success saved')
return redirect('CnCheckList')
else:
messages.error(request, 'CNs already exist or invalid')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.