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

Django函数视图如何传递Group模型数据至模板?

解决方案

不需要改成类视图,函数视图里直接就能把Group实例传递给模板,具体操作如下:

1. 获取Group实例

通过主键(或其他查询条件)获取目标Group对象,推荐用get_object_or_404处理找不到实例的情况:

from django.shortcuts import get_object_or_404
from .models import Group

def send_notifications(request, group_id):
    group = get_object_or_404(Group, pk=group_id)
    # 后续执行发送邮件逻辑

2. 将实例传入模板上下文

调用render函数时,把Group实例加入第三个参数(上下文字典),模板就能访问模型数据了:

from django.shortcuts import render
from django.core.mail import send_mail

def send_notifications(request, group_id):
    group = get_object_or_404(Group, pk=group_id)
    
    # 执行发送邮件的逻辑
    send_mail(
        subject=f"【{group.name}】成员通知",
        message=f"各位{group.name}的成员,请注意查看最新通知内容...",
        from_email="admin@example.com",
        recipient_list=[member.email for member in group.members.all()],
        fail_silently=False,
    )
    
    # 把group实例传递给模板
    return render(request, "notifications/success.html", {"group": group})

3. 模板中使用模型数据

在模板里直接通过变量访问Group的字段即可:

<div class="notification-success">
    <h2>通知发送成功!</h2>
    <p>已向 {{ group.name }} 的 {{ group.members.count }} 位成员发送邮件</p>
</div>

如果你的视图不需要渲染模板,只是发送邮件后跳转,也可以通过URL参数传递必要信息,但如果需要展示Group相关的内容,上述传递上下文的方法是最直接的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:36:14