在Rails中,如果我想设置一个“上下文”,它基本上是每个视图需要的对象,如登录用户的用户对象,或者说商店/帐户/位置对象,我将如何在django框架中的每个视图?
在Rails中我会做这样的事情:
class BaseController
before_action :setup_context
def setup_user
@user = # load user from db
@location = # load location for user
end
end
class HomeController < BaseController
def index
# I now can use the variables @user and @location
end
end
Django是否有这些类型的事件我可以加载对象并在我的所有视图中使用它们?
答案 0 :(得分:2)
您可以编写自己的上下文处理器:
学习:
https://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors
http://www.b-list.org/weblog/2006/jun/14/django-tips-template-context-processors/
答案 1 :(得分:0)
如果我理解你的问题,我认为你正在尝试做这样的事情。我自己对Django仍然缺乏经验,所以请耐心等待。
基本示例:
views.py
from django.shortcuts import render
from exampleapp.models import User # User object defined in your models.py
def index(request):
context = { 'users': User.objects.all() }
return render(request, 'exampleapp/example.html', context)
example.html的
{% if users %}
{% for user in users %}
<p>{{ user.name }}</p>
{% endfor %}
{% else %}
<p>No users.</p>
{% endif %}
如果我在你的问题上错过了标记,我表示道歉。