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

Django点击通知链接提示Invitation匹配查询不存在的解决方法

问题解决步骤

1. 修正URL名称的大小写不匹配

你的URL配置中视图名称是invitation_information(全小写),但信号里reverse调用时写的是Invitation_Information(大小写混合),Django的URL名称区分大小写,这会导致生成的链接指向错误地址。

修改信号代码中的reverse部分:

# 原代码
link = reverse('Invitation_Information', args=[str(instance.room_type.slug)])

# 修改后
link = reverse('invitation_information', args=[str(instance.slug)])

2. 传递正确的Slug参数

当前你传递给链接的是Room模型的slug,但视图是通过Invitation模型的slug查询数据,两者完全不匹配,这是触发Invitation matching query does not exist错误的核心原因。

上面的修改已经将参数替换为instance.slug(当前创建的Invitation对象自身的slug),确保视图能通过该slug找到对应的Invitation记录。

3. 可选:添加异常处理增强健壮性

为避免用户手动输入无效slug导致服务器报错,建议在视图中捕获DoesNotExist异常,返回404页面:

from django.shortcuts import get_object_or_404

def invitation_information(request, slug):
    invitation = get_object_or_404(Invitation, slug=slug)
    return render(request, 'invitations.html', {'invitation':invitation})

验证修改

  1. 重新创建Invitation对象,触发信号生成新的Notification
  2. 检查Notification的link字段,确认slug为Invitation自身的slug而非Room的slug
  3. 点击通知链接,即可正常显示对应Invitation的信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:27:03