2011-06-09 29 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

相关问题