2014-10-08 52 views
0

當我使用django查詢時。
我會用.exists來檢查它是否成功。像:如何檢查django查詢是否成功

que = Image.objects.filter(id=1)   
if que.exists():  
    #do something 

我想問如果我用update這樣的:

Image.objects.filter(id=ac[0].id).update(url=image['url'],path=image['path'])

我怎麼能檢查查詢是成功?

請指導我。謝謝

回答

0

指定的查詢像一個變量:

try: 
    img = Image.objects.filter(id=ac[0].id).update(url=image['url'],path=image['path']) 
    img[0] 
    print "success" 
except: 
    print "failed" 
2

orm documentation

的update()方法即時應用,並返回查詢所匹配的 行數(如果某些行已經具有新值,則這可能不等於更新的 行的數量)。

此外,重要的是要注意,調用update是一個原子操作。所以如果它不成功,將會引發錯誤。

如果你是確保更新應該修改至少一行,做

num = Image.objects.filter(id=ac[0].id).update(url=image['url'],path=image['path']) 
if num > 0: 
    print "successful 
    #do something