为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Django 模板中使用 Django 模型对象?

如何在 Django 模板中使用 Django 模型对象?

慕尼黑8549860 2022-12-20 12:17:26
我无法在 Django 模板中使用 Django 模型对象。我想在模板中使用模型用户进行迭代,然后使用该用户的 ActivityPeriod(model) 进行播放。请检查我的代码是否清晰:这是我的代码:views.pyfrom .models import User,ActivityPerioddef call_response(request):    user = User.objects.all()    return render(request, "Test/list.html", {"users":user ,"activityperiod":ActivityPeriod})测试/list.html{% for user in users %}    'real_name': {{ user.real_name}}},    'activity_periods': {% with activity=activityperiod.objects.get(id =user) %}    {{ activity.start_time }}    {% endwith %}{% endfor %}但我收到一个错误: 无法解析余数:'(id' from 'activityperiod.objects.get(id'什么是正确的方法?任何人都可以请与我分享。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

views.py


def call_response(request):


user = User.objects.filter(user=request.user)

activityperiod = activityperiod.objects.get(user=user)

context={'user':user,'activityperiod':activityperiod}

return render(request, "Test/list.html",context})

测试/list.html


'real_name': {{ user.real_name}}

'activity_periods':{{ activityperiod.start_time }}


查看完整回答
反对 回复 2022-12-20
?
动漫人物

TA贡献1815条经验 获得超10个赞

Django 模板不理解模型的过滤操作。这部分应该在视图中。

activity=activityperiod.objects.get(id =user)

在发送到模板之前,您应该准备好数据并对其进行操作(字典可能会对您有所帮助)。请记住,操作“User.objects.all()”的结果是一个列表。


查看完整回答
反对 回复 2022-12-20
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

你的问题表明你认为你可以像普通函数一样在模板中使用函数(即activityperiod.objects.get(...))。


你不能,模板系统不是这样制作的(出于安全原因等)。


你应该在你的模型中做类似的事情:


def call_response(request):

    # ! first() not "all()" (if > 1 user, you'll have problem)!

    user = User.objects.first()

    activityperiod = activityperiod.objects.get(user=user)

    return render(request, "Test/list.html",

                  {"users":user ,"activityperiod":activityperiod})


查看完整回答
反对 回复 2022-12-20
  • 3 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信