如何在 django 和 MySQL 中过滤数据库中的两个字段?
Posted
技术标签:
【中文标题】如何在 django 和 MySQL 中过滤数据库中的两个字段?【英文标题】:How can i doing for filtering for two fields in database in django and MySQL? 【发布时间】:2015-04-03 19:01:52 【问题描述】:我的问题是我想将两个字段(“可见”、“用户”)过滤到我的数据库中,以便在我的 html 页面中查看结果。
我有一个数据库 (bd_mission),并且有字段,我想过滤 Visible=True
和 user=request.user.username
,并且只能使用一个字段。
我的代码是:
def misiones(request):
mission = bd_mission.objects.filter(user=request.user.username)
return render_to_response('misiones.html','mission_template': mission,context_instance=RequestContext(request))
我想要怎么做:
mission = bd_mission.objects.filter((Visible=True)&(user=request.user.username))
谢谢!对不起,我的英语不好 ! ^^'
【问题讨论】:
【参考方案1】:只需将多个参数传递给filter()
方法:
mission = bd_mission.objects.filter(Visible=True, user=request.user.username)
附带说明:filter()
/exclude()
方法可以以任何组合进行链接,因此上面的代码可以写成:
bd_mission.objects.filter(Visible=True).filter(user=request.user.username)
两种情况的结果都是一样的。
如果你想要OR
逻辑(Visible=True
或user=username
),那么你可以使用Q objects。
【讨论】:
一个有效的替代方案是mission = bd_mission.objects.filter(user=request.user.username).filter(Visible=True)
。如果在输出查询中不需要 JOIN
s,则它们是相同的。
您可能想提到在 FK 和 RFK 上下文中使用时两者之间存在细微差别。
简单.. -.-' xD 谢谢!
@dmg 我认为现在不是将 Pedro 与很多细节混淆的有效时间。恕我直言,向后关系和注释对于新手来说是相当复杂的主题。以上是关于如何在 django 和 MySQL 中过滤数据库中的两个字段?的主要内容,如果未能解决你的问题,请参考以下文章
Django 慢查询:将 django 过滤语句连接到数据库日志中的慢查询
Django模板如何使用标签和模板过滤器从json dict中获取数据
Python+Django+Mysql志愿者活动推荐系统 基于用户项目内容的协同过滤推荐算法 SimpleWebActivityCFRSPython python实现协同过滤推荐算法实现源代码下载