由于我们的数据库被整理的方式,他们忽略了用户名和密码的情况,我们目前无法在数据库级别修复。从this thread看来,WHERE BINARY 'something' = 'Something'
应该解决问题,但我无法弄清楚让Django插入BINARY
。有什么提示吗?
答案 0 :(得分:1)
我认为没有一种简单的方法可以强制Django在查询内容中添加内容。
您可能只想在Django中编写一个raw SQL query来获取通过区分大小写的比较过滤的对象,然后在普通查询中使用它们。
另一种方法是使用Django区分大小写的过滤器来实现相同的结果。例如。 contains
/ startswith
都使用BINARY LIKE
,可以在比较两个长度相同的字符串时使用(如密码哈希)。最后,您可以使用regexp
进行区分大小写的比较。但在这种情况下,这些都是相当丑陋的方法。他们有一个不必要的开销,你应该尽可能避免它们。