gpt4 book ai didi

django - 通过django模板中的另一个类确定用户是否与对象相关联

转载 作者:行者123 更新时间:2023-12-04 06:59:51 24 4
gpt4 key购买 nike

我有一个 用户 模型,一个 项目 模型和 拥有模型来存储有关拥有物品的用户的数据。当用户登录并查看项目时,我想显示“添加到我的项目”按钮,除非用户已经拥有该项目。

我正在模板中尝试此代码:

{% if not user.possession_set.filter(item=item.id) %}    
<input type='submit' value='add to my items' />
{% endif %}

在哪里
项目 是我的拥有模型中项目对象的外键名称和
item.id 是显示给用户的项目的主键

但我收到此错误:
Could not parse the remainder: '(item=item.id)'

我想我不能使用 .filter() 函数,因为那是用于查询数据库?我找到了 django 的模板过滤器,就像这样:
http://docs.djangoproject.com/en/1.1/ref/templates/builtins/#get-digit
但是没有任何可以组合来过滤某个项目值的东西。似乎我将在模板中拥有所有信息来执行此操作,因为我正在获取用户并且它是占有集,它应该具有每个占有的项目字段,所以我认为这只是一个语法问题?

谢谢您的帮助!

最佳答案

您可以为此编写自定义模板过滤器。

def owns(user, id):
return not user.possession_set.filter(item=id)

然后,在您的模板中:
{% load mystuff %}
{% if user|owns:item.id %}

http://docs.djangoproject.com/en/1.1/howto/custom-template-tags/ 查看 Django 文档了解更多信息。不确定是否通过 item.id不过,因为过滤器参数会起作用。

关于django - 通过django模板中的另一个类确定用户是否与对象相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com