亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 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 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號