2011-06-09 68 views
1

我在Django中插入NULL時遇到問題。我的意思是我不知道如何做到這一點。如何使用Django在數據庫中插入NULL

我有功能,讓我們叫它find_position,然後我有像position(IntegerField,null = True,空白=真)模型中的字段。這個函數檢查一些html代碼,如果它匹配一些正則表達式,它會返回整數,但是如果它沒有找到 - 必須返回NULL或None或我可以放入數據庫的東西。

def find_position(self, to_find, something): 
    ... 
     if re.search(to_find, something): 
      return i + (page * 10) + 1 
    return NULL # or what i have to return here? 

,我有這樣的:

_position = find_position(to_find, something) 
p = Result(position=_position, ...) 
r.save() 

我以前用戶CharField爲position,並返回 ' - ' 如果沒有找到結果。但我不得不計算總成績,像position__lte問題= 10(因爲它不是integer,並將其與數字和字符串-

我能與此做什麼?

+0

你試過沒有 – wong2 2011-06-09 10:05:45

回答

6

使函數返回None搞砸了(或不返回任何東西,這是一樣返回None),數據庫將被保存Null:。

def find_position(self, to_find, something): 
    ... 
     if re.search(to_find, something): 
      return i + (page * 10) + 1 
    return None 
+0

真是奇怪嘗試過這一點,有問題現在它的工作原理謝謝)和一個!問題,我如何改變所有領域在表中,這是' - '之前成爲NULL? – Igor 2011-06-09 10:37:35

+0

用更新查詢直接更新數據庫中的字段,例如:UPDATE youTable Set position = NULL WHERE position ='-''。 – manji 2011-06-09 12:43:21

+0

或者你可以用['update()'](https://docs.djangoproject.com/en/dev/misc/design-philosophies/?from=olddocs#separate-logic-from-presentation)貝殼。 'Results.objects.filter(position =' - ')。update(position = None)' – 2011-06-09 13:34:18

相關問題