首页 > 解决方案 > Django 'NoneType' 对象在 AutoField 表中没有属性 'id' 错误

问题描述

我有这个models.py

class Departamento(models.Model):
   id = models.AutoField(db_column='ID', primary_key=True)
   nome = models.CharField(db_column='Nome', max_length=255, blank=True, null=True)

class Utilizador(AbstractBaseUser):
   id = models.AutoField(db_column='ID', primary_key=True)
   departamentoid = models.ForeignKey(Departamento, models.DO_NOTHING, db_column='DepartamentoID', blank=True, null=True)
   email = models.CharField(db_column='Email', max_length=255, blank=True, null=True, unique=True)
   nome = models.CharField(db_column='Nome', max_length=255, blank=True, null=True)

USERNAME_FIELD = 'email'
EMAIL_FIELD = 'email'

在我看来,我正在做

utilizador = Utilizador.objects.get(id=request.user.id)
dep = Departamento.objects.get(id=utilizador.departamentoid.id)

我在模板中使用此视图,但由于此错误“'NoneType' 对象没有属性 'id'”,我无法渲染模板

为什么会这样?

标签: pythondjangodjango-queryset

解决方案


你想念 id 在你的:

utilizador = Utilizador.objects.get(id=request.user.id)

但实际上最好这样做:

dep = utilizador.departamentoid


推荐阅读