第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Django Python - 在公共標(biāo)頭中添加表值

Django Python - 在公共標(biāo)頭中添加表值

尚方寶劍之說(shuō) 2023-07-11 16:56:32
也許嘗試做一些不可能的事情,但基本上,我創(chuàng)建了一個(gè)文件 header.html,其中包含所有其他 html 頁(yè)面,例如 {% include "project/header.html" %} 這工作正常,挑戰(zhàn)在于 header.html 我想要放置一個(gè)包含來(lái)自模型的值的下拉菜單。如果我直接調(diào)用 header.html 它工作正常,但在其他頁(yè)面內(nèi)則不行。header.html...<ul>{% for club in clubs.all %}<li> <a href="#">{{ club.name }}</a></li>{% endfor %}...views.pyfrom django.http import HttpResponsefrom django.shortcuts import renderfrom .models import Clubdef index(request):    clubs = Club.objects    return render(request, 'project/index.html',{'clubs':clubs})這可能嗎?提前致謝
查看完整描述

1 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以為此編寫(xiě)一個(gè)上下文處理器[Django-doc] 。這是每次添加到請(qǐng)求中的方法。

在應(yīng)用程序(您使用的任何應(yīng)用程序)中,您可以定義上下文處理器:

# app/context_processors.py


def all_clubs(request):

? ? from app.models import Club

? ? return {

? ? ? ? 'clubs': Club.objects.all()

? ? }

然后在文件中注冊(cè)此上下文處理器settings.py,以便在每次render(…)調(diào)用時(shí)將其添加到上下文中:


# settings.py


# …


TEMPLATES = [

? ? {

? ? ? ? # …

? ? ? ? 'OPTIONS': {

? ? ? ? ? ? 'context_processors': [

? ? ? ? ? ? ? ? # …

? ? ? ? ? ? ? ? 'app.context_processors.all_clubs'

? ? ? ? ? ? ]

? ? ? ? }

? ? ? ? # …

? ? }

]

現(xiàn)在您不再需要傳入clubs每個(gè)渲染調(diào)用。它將自動(dòng)添加。由于QuerySets 是惰性的,如果您的模板不使用 s ,它將不會(huì)訪問(wèn)數(shù)據(jù)庫(kù)clubs。


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)