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)
后续操作
- 执行数据库迁移,让Django同步字段变更:
python manage.py makemigrations python manage.py migrate
- 重新执行查询代码
Categoria.objects.filter(categoria__isnull=True),即可正常获取无上级分类的父分类。
内容的提问来源于stack exchange,提问作者pedrocardo01
相关产品推荐
相关产品推荐

