django 自定义filter 判断if var in list的例子

yipeiwu_com6年前Python基础

1. 需求:

用户答题练习,当用户获取所有题目的同时,需要判断用户是否已经做过该题目,如果做过,需要render的时候添加一个“回顾”按钮。

2. 实现

a. 查询用户做过题目的id

      finished_objs=UserSpeaking.objects.filter(user=request.user)
      finished_ids=[ obj.id for obj in finished_objs]

b. 创建filters.py

from django import template
register = template.Library()
def include_filter(value,values):
  return True if value in values else False
register.filter('include', include_filter)

c. 在模板中引用

{% load filters %}
 
...
{% if test.id|include:finished_ids %}
 <a href="{% url 'practice_history' test.id %}" rel="external nofollow" class="go_to_btn lf">去回顾</a>
{% endif %}

以上这篇django 自定义filter 判断if var in list的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 将列表中的字符串连接成一个长路径的方法

今天实习公司分配了一个数据处理的任务。在将列表中的字符串连接成一个长路径时,我遇到了如下问题: import os path_list = ['first_directory',...

使用pandas读取csv文件的指定列方法

根据教程实现了读取csv文件前面的几行数据,一下就想到了是不是可以实现前面几列的数据。经过多番尝试总算试出来了一种方法。 之所以想实现读取前面的几列是因为我手头的一个csv文件恰好有后面...

python中常用的九种预处理方法分享

python中常用的九种预处理方法分享

本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean R...

利用Python将文本中的中英文分离方法

在进行文本分析、提取关键词时,新闻评论等文本通常是中英文及其他语言的混杂,若不加处理直接分析,结果往往差强人意。 下面对中英文文本进行分离做一下总结: 1、超短文本,ASCII识别。...

tornado捕获和处理404错误的方法

Tornado 文档中提到但是这样只能捕获到handlers中列出的路径请求中的错误。 如果只定义了(r"/hello", HelloHandler) 一条规则,那么只能捕获到 /hel...