Django“NoneType”对象在AutoField表中没有属性“id”错误

2024-10-05 10:05:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个模型

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'”

为什么会这样


Tags: idtruedbmodelsemailcolumnnulllength
2条回答

您在以下内容中丢失了id:

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

但实际上最好是:

dep = utilizador.departamentoid

一定要在这里找到目标

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

然后还要确保utilizadordepartamentoid。 因为如果一个对象没有属性,那么你就不能访问它的属性。 这意味着如果utilizador没有departamentoid,那么您不必通过departamentoid.id访问id

相关问题 更多 >

    热门问题