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顯示了一些方法來做到這一點,但它是一個很大的話題。 –