django - 在 if 语句中传递 django templatetag 返回值
问题描述
我想在 if 语句中使用我的模板标签的返回值。
这是模板标签
# validate_bookmark.py
from django import template
from user.models import Bookmark
register = template.Library()
@register.simple_tag
def validate_bookmark(post, user):
if Bookmark.objects.filter(user=user, post=post).first() != None:
return True
return False
模板
{% load validate_bookmark %}
{% if (validate_bookmark post_obj request.user) == True %} <!-- Something like this -->
<button data-postpk="{{i.pk}}" class="**fw-bold** bookmarkBtn mx-3 n-border-outline n-border-outline far fa-bookmark px-0 py-0" style="font-size: 1.1rem;"></button>
{% else %}
<button data-postpk="{{i.pk}}" class="bookmarkBtn mx-3 n-border-outline n-border-outline far fa-bookmark px-0 py-0" style="font-size: 1.1rem;"></button>
任何帮助表示赞赏
谢谢
解决方案
如文档中所述,您可以使用参数将模板标签的结果存储在模板变量中as
,使用该存储变量,您可以轻松地在if
标签中使用它:
{% validate_bookmark post_obj request.user as is_valid_bookmark %}
{% if is_valid_bookmark %}
<button data-postpk="{{i.pk}}" class="**fw-bold** bookmarkBtn mx-3 n-border-outline n-border-outline far fa-bookmark px-0 py-0" style="font-size: 1.1rem;"></button>
{% else %}
<button data-postpk="{{i.pk}}" class="bookmarkBtn mx-3 n-border-outline n-border-outline far fa-bookmark px-0 py-0" style="font-size: 1.1rem;"></button>
{% endif %}
推荐阅读
- reactjs - 反应单选按钮 - 部分工作 - 正确获取数据 - 但未呈现为选中状态
- python - 获取:'IndexError:索引 1 超出轴 0 的范围,大小为 0',但不知道为什么
- python - NetBox 安装期间出错,无法使用 manage.py 创建超级用户
- python - Pycairo:如何正确实例化 cairo.XlibSurface()?
- python - 如何更改selfbot的存在
- java - 在spring可以解析微服务实例的IP地址[jhipster]
- python - 是否有 python 函数可以将文本注入任何网络浏览器的地址栏中?
- python - 我使用 Telnet 扫描 IP 地址并向每个地址发送命令的 python 脚本不起作用我不断收到“发生错误”
- python-3.x - Python Windows 服务
- javascript - 如何在 Highcharts 中显示每个月的第一个日期的值