0
我有我的数据库与该值的用户:Django的 - 查询字符串精确匹配
booking_id -> 25DgW
此字段在我的模型标记为unique
booking_id = models.CharField(null=False, unique=True, max_length=5, default=set_booking_id)
但现在当我查询了用户是这样的:
>>> User.objects.get(booking_id='25dgw') # I think this should throw a DoesNotExist exacption
<User: John Doe>
即使我做的:
>>> Partner.objects.get(booking_id__exact='25dgw')
<User: John Doe>
我需要一个查询,只有当代码的写入方式与保存在数据库中的方式完全相同时,才会返回用户:25DgW
而不是25dgw
。
我该如何查询?
万一你不知道,这是MySQL的问题。使用ORM来实现这一点并不容易。原始的sql可能会这样做:http://stackoverflow.com/questions/7857669/mysql-case-sensitive-query –
@ShangWang所以'__exact'是什么?有没有办法(很难而且不容易)做到这一点? – Gocht
将您的mysql归类更改为区分大小写。 '__exact'意味着Django应该告诉数据库你需要完全匹配。数据库排序规则设置数据库是否应该考虑'bob'和'Bob'完全匹配。 http://stackoverflow.com/questions/5629111/how-can-i-make-sql-case-sensitive-string-comparison-on-mysql显示了一些方法来做到这一点,但它是一个很大的话题。 –