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

Django中get_object_or_404()遇意外'slug'参数TypeError错误

Django电商项目分类链接TypeError问题排查与解决

错误现象

点击“vegetables”“cotton dress”分类链接时,访问路径/vegetables/触发TypeError,提示get_object_or_404() got an unexpected keyword argument 'slug'。

错误原因分析

结合代码和错误提示,核心可能原因如下:

  • 数据库未同步:Category模型中定义了slug字段,但未执行数据库迁移操作,导致数据库表中不存在该字段,查询时触发参数不匹配错误。
  • 模型导入错误:views.py中导入的Category并非项目自身定义的模型(比如误导入第三方应用的同名Category),该模型没有slug字段。
  • 拼写失误:实际项目中可能存在slug字段名拼写错误(如写成sluge),导致查询参数与模型字段不匹配。

解决方案

1. 同步数据库迁移

如果是数据库未同步导致的问题,执行以下命令将模型变更同步到数据库:

python manage.py makemigrations
python manage.py migrate

2. 确认模型导入正确性

检查views.py中的导入语句,确保导入的是当前应用的Category模型:

# 正确的相对导入方式
from .models import Category

避免导入其他应用或第三方库中的同名模型。

3. 验证字段名拼写

确认Category模型中的字段名确实为slug,无拼写错误:

class Category(models.Model):
    # 确保字段名正确为slug
    slug = models.SlugField(max_length=250, unique=True)
    # 其他字段定义...

4. 检查链接生成逻辑

确保模板(如navbar.html)中分类链接通过Category模型的get_url方法生成,避免手动硬编码路径:

<!-- 正确的分类链接生成方式 -->
<a href="{{ category.get_url }}">{{ category.name }}</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:25:18