django出现这样的报错AttributeError at /keqi_admin/ 'NoneType' object has no attribute 'content_type'

我的views.py



class IndexView(View):
    """
    后台首页视图
    """

    def get(self, request):

        objs = Menu.objects.select_related( 'permission__content_type').only('name', 'url', 'icon', 'permission__codename','permission__content_type__app_label').filter(is_delete=False, is_visible=True, parent=None)
        has_permissions = request.user.get_all_permissions()
        menus = []
        for menu in objs:
            if f'{menu.permission.content_type.app_label}.{menu.permission.codename}' in has_permissions: #这会报.content_type错误
                temp = {
                    'name': menu.name,
                    'icon': menu.icon
                }
                children = menu.children.filter(is_delete=False, is_visible=True)
                if children:
                    temp['children'] = []
                    for child in children:
                        if f"{child.permission.content_type.app_label}.{child.permission.codename}" in has_permissions:
                            temp['children'].append({
                                'name': child.name,
                                'url': child.url
                            })
                else:
                    if not menu.url:
                        continue
                    temp['url'] = menu.url
                    menus.append(temp)
        return render(request, 'keqi_admin/admin.html', context={'menus': menus})

我的models.py


class Menu(BaseModel):
    name = models.CharField('菜单名', max_length=48, help_text='菜单名',unique=True)
    url = models.CharField('url', max_length=256, null=True, blank=True, help_text='url')
    parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children',verbose_name='父菜单')
    order = models.SmallIntegerField('排序', default=0)
    permission = models.OneToOneField(Permission, on_delete=models.CASCADE, null=True)# 权限
    icon = models.CharField('图标', max_length=48, default='fa-link')
    codename = models.CharField('权限码', max_length=48, help_text='权限码', unique=True)
    is_visible = models.BooleanField('是否可见', default=False)

    class Meta:
        ordering = ['-order']
        db_table = 'kq_menu'
        verbose_name = '菜单'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

我的数据库
django_content_type表

img

表结构

img

auth_permission表

img

表结构

img

遍历时候打印下menu.permission 这个看看有没有值