2017-03-02 13 views
0
def getPreID(self): 
    preid=self.id-1 
    preid1 = TourScene.objects.filter(id = preid) 
    if not preid1: 
     preid =preid-1 

存在什麼我想在這裏到底是當我得到self.id我需要以前的標識 所以我做preid = self.id -1,現在我想檢查這個preid是否存在,如果不是,我想要下一個以前的ID。Django的循環內Model.py檢查,如果以前的ID在DB或NOT

那麼,怎樣才能在我循環中運行此檢查,如果ID不存在檢查以前,如果以前不存在,然後檢查挨着的前一ID ..所以...

請幫助我,因爲我是新來的蟒蛇。

回答

0

它看起來像你可能試圖獲得一個ID來創建一個新的數據庫行。一般來說,讓Django自己處理新對象的id,通過保持id沒有指定就更好了。你想要的可能會受到競爭條件的影響 - 也就是說,如果兩個流程試圖找出一個免費的id,同時它們會選擇相同的價值。

+0

您好,感謝您的reply.But在這裏,我試圖去檢查,因爲需要一個和下一個ID。假設我有一系列10張圖像,並且一些中間圖像ID已被刪除,那麼在這種情況下,我需要檢查哪個Id存在以及哪個不存在 – upendtu

0

如果你希望你的函數返回前一個ID,或None如果它不存在:

def getPreID(self): 
    preid = self.id - 1 
    while preid != 0: 
     if TourScene.objects.filter(id=preid): 
      return preid 
     preid = preid - 1 
    return None 
+0

它不適用於我。我以某種不同的方式解決問題。我所做的是將所有ID存儲在數組中,然後查找** self.id **圖像的位置,然後獲取之前的圖像** self.id圖像位置-1 **,將下一個圖像顯示爲** self。 ID圖像位置+ 1 **因爲我點亮了100-1000張圖像,並且如果在系列中間刪除了某些圖像,則self.id-1和self.id + 1不起作用。 – upendtu