1 回答

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。
添加回答
舉報(bào)