首页 > 其他分享 >'NoneType' object has no attribute 'name'

'NoneType' object has no attribute 'name'

时间:2023-03-22 15:22:34浏览次数:40  
标签:status el name -- attribute object models tag

 

某个外键允许设置为空,null=True,blank=True,同时on_delete=models.SET_NULL

当在Django admin后台自定义标签的时候进行判断的时候,如果默认为空,提交数据库后会出现'NoneType' object has no attribute 'name'

此处建议设置默认值即可解决

 

default=1,on_delete=models.SET_DEFAULT

 

 

 

原几处关联的代码(假如对应为空则报错):

外键表中:

 

status=models.ForeignKey(verbose_name="跟进状态",to_field="id",to='StatusList',null=True,blank=True,on_delete=models.SET_NULL)

 

StatusList表:

class StatusList(models.Model):
    name=models.CharField(verbose_name="用户状态",max_length=32)  

 

应用自定义标签代码调用:
主要根据用户不同的状态给予不同的颜色背景
def colored_status(self):
        if self.status_id == 5:
            color_code = 'el-tag el-tag--small el-tag--danger el-tag--dark'
        elif self.status_id == 4:
            color_code = 'el-tag el-tag--small el-tag--success el-tag--dark'
        else:
            color_code = 'el-tag  el-tag--small el-tag--dark'
        return format_html(
            '<span class="{}">{}</span>',
            color_code,
            self.status.name,
        )
    colored_status.short_description = u"状态"

 

标签:status,el,name,--,attribute,object,models,tag
From: https://www.cnblogs.com/superip/p/17244156.html

相关文章