AttributeError:'NoneType'对象在保存时没有属性'something'

时间:2013-08-15 00:45:55

标签: python django django-models

我的模型非常简单 -

> class Item(TimeStampedModel):
    item_name = models.CharField("Item name", max_length=100)
    item_urlname = models.CharField("Item url name", null=True, blank=True, max_length=200)
    item_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True, max_length=100)
    standard = models.ManyToManyField(Standard, blank = True, null = True)
    item_type = models.CharField("Item Type", choices=ITEM_TYPES, max_length=5, default='P')

我为它保存了覆盖 -

def save(self, *args, **kwargs):

    try:
        url_nosymbols = re.sub(r'[^A-Za-z0-9 ]', '', self.item_name.lower())                    
        url = url_nosymbols.replace(' ','_')
        self.item_urlname = url
        super(Item, self).save(*args, **kwargs)
    except:
        raise

现在,当我尝试使用shell_plus保存Item时(Item对象与所有其他对象一起导入),它失败并出现奇怪的错误 - 属性错误 - 'NoneType'对象没有属性'sub'< /强>

>import re
>item = Item(item_name='my testing', item_date=datetime.now().date(), item_type='C')
>item.save()
>url_nosymbols = re.sub(r'[^A-Za-z0-9 ]', '', self.item_name.lower()) 
 *** AttributeError: 'NoneType' object has no attribute 'sub'

即使我检查self是Item对象,它确实存在 -

(Pdb) self
<Init: my testing>
(Pdb) type(self)
<class 'items.models.Item'>
(Pdb) self.item_name
'my testing'

我觉得,还有一些其他错误,但它没有抛出实际错误。我看到这个确切的错误消息在其他堆栈溢出线程上被问了几个问题,虽然我无法与我的场景相关联。

提前感谢您的帮助。如有任何其他问题,请发表评论,我会尝试提供相关信息。

0 个答案:

没有答案