Django 模板能传递参数吗?获取当前用户

0 投票
1 回答
1226 浏览
提问于 2025-04-16 10:55

在我的模板中,我使用了一个模型里的方法,具体是这样...

这个模型是这样定义的:

class Category(model.Model):

    title = models.CharField('title', max_length=255)    
    description = models.TextField('description', blank=True)

    def pub_set(self):  
        ...
        return somedata

模板的用法大概是这样的:

{{ category.pub_set }}

我想在pub_set里获取当前用户的信息。

1 个回答

1

我不太明白你具体在问什么。在Category.pub_set()里面,你是想访问request.user吗?如果是这样的话,很遗憾你不能这么做。虽然可能有一些变通的方法可以实现,但这并不是Django推荐的做法。

你可以看看模板标签,它们可以让你从模板中传递你的分类和用户,然后进行你需要的操作,最后返回结果。这里有一个文档链接供你参考。

http://docs.djangoproject.com/en/1.2/howto/custom-template-tags/#passing-template-variables-to-the-tag

另一种方法是在视图中完成你需要的操作,然后把结果保存在页面上下文中,这样在模板中就可以使用了。

如果我能更清楚地了解你想做什么,可能会更容易给你指明方向。

撰写回答