可以在每个用户请求上访问模型功能

时间:2013-03-23 20:10:33

标签: django django-models django-signals

我有一个名为Account的模型,它有一个模型函数(参见下面的代码)。我想在我的模板中显示每个页面上的用户总数。我可以想到这样做的唯一方法就是在每个视图中放置帐户。我还有其他选择吗?可以请求request.user吗?我已经可以在每个视图中访问请求,并且Accounts具有FK用户。

 def _balance(self):
        aggregates = self.transactions.aggregate(sum=Sum('amount'))
        sum = aggregates['sum']
        return D('0') if sum is None else sum 

1 个答案:

答案 0 :(得分:4)

您需要一个上下文处理器。每次渲染模板时,都会给它一个“上下文”;这是一个类似字典的对象,其键是变量名,其值是变量的值。

例如......

创建一个文件my app / context_processors

def get_balance(request):
    do something
    return {'balance': 0}

将其添加到您的设置中:

TEMPLATE_CONTEXT_PROCESSORS = ('myapp.context_processors.get_balance',)

进行。