在python / Django中加载由特定用户创建的对象

时间:2013-10-10 02:09:52

标签: python django

所以在我的views.py中,我有一个工具列表,它是数据库中所有工具的列表。 我想以某种方式过滤此列表以仅加载当前用户创建的工具。

该工具的所有者是一个ShedUser对象,其名称可以通过tool.owner.user.username访问, 我已经尝试通过html文档中的user.username之类的东西来引用用户。正如您在我的html模板代码中看到的那样

{% if tool.owner.user.username == user.username %}

在html中尝试过滤总列表。 我没有成功过滤python文件或html模板中的总列表。我也尝试过不同的方法,只生成用户首先创建的工具列表,但也无法找到方法。

这是我的文件

我的root / tool / views.py:

http://pastebin.com/ri93S7Gq

我的root / site / templates / shelf.html:

http://pastebin.com/Qmrirk2y

我的root / tool / models.py:

http://pastebin.com/v6nS6L4B

我的root / user / models.py:

http://pastebin.com/pNqkNVCG

1 个答案:

答案 0 :(得分:0)

您需要在渲染前过滤结果。

在视图中,您需要执行以下操作:

tools = Tool.objects.filter(owner__user=request.user).order_by('name')