我有這樣的代碼:與主鍵字段中選擇行= NULL
object_id = request.POST.get('id')
try:
object = request.user.object_set.get(id=object_id, flag=False)
except Object.DoesNotExist:
object = None
我想如果object_id == None
,我總是會得到object == None
。但不是!當object_id
是無我從DB獲得一些object
!我用遠程調試,並檢查,我第一次評估request.user.object_set.get(id=object_id, flag=False)
我得到了對象實例,第二次評估這段代碼我得到了DoesNotExist異常。
我重寫了這段代碼,明確地檢查了object_id
,然後才讓DB獲取對象。我只是好奇 - 爲什麼會發生這種情況?一些緩存問題?另外小記事本 - 它在本地計算機(Windows 7)上按預期工作,它不能只在服務器(CentOS)上運行,而是在同一版本的Python/Django上運行。
檢查有什麼樣的主鍵,此記錄數據庫。也許None沒有正確映射到NULL,但是是0或「None」或類似的字樣。主鍵字段 – Thilo
不能爲空。如果你談論的表是空的,那麼它也不會返回任何行。如果你想要選擇任何值爲NULL的行,那麼你需要使用'value is NULL'。你不能使用'value = NULL'.Hope這有幫助。 – vijay
感謝您的建議。表格不是空的,所有ID都是正整數(1..30)。我看着SQL,它是「WHERE ID IS NULL」 - 看起來正確。我認爲它可以只與Django連接...... – demalexx