You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django自关联模型外键过滤报错:无法解析'categoria'字段求助

问题解决:无法解析'categoria'字段的FieldError

问题根源

你的Categoria模型中,自关联外键字段定义的末尾多了一个逗号,导致该变量被解析为元组而非Django模型字段,ORM自然无法识别categoria字段。

问题代码片段:

categoria=models.ForeignKey(
    'Categoria',
    on_delete=models.CASCADE,
    blank=True,
    null=True,
    related_name='categorias'
),  # 此处多余的逗号是错误原因

修复方案

移除外键定义末尾的逗号,修正后的完整模型代码:

class Categoria(TranslatableModel):
    translations = TranslatedFields(
        nome=models.CharField(max_length=255),
        icone=models.CharField(max_length=255, blank=True, null=True),
    )

    categoria=models.ForeignKey(
        'Categoria',
        on_delete=models.CASCADE,
        blank=True,
        null=True,
        related_name='categorias'
    )  # 已移除末尾逗号

    def __str__(self):
        return 'Categoria {}'.format(self.nome)

后续操作

  1. 执行数据库迁移,让Django同步字段变更:
python manage.py makemigrations
python manage.py migrate
  1. 重新执行查询代码Categoria.objects.filter(categoria__isnull=True),即可正常获取无上级分类的父分类。

内容的提问来源于stack exchange,提问作者pedrocardo01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:45:30