python django ORM中的不同结果

5kgi1eie  于 2024-01-05  发布在  Python
关注(0)|答案(1)|浏览(128)

我使用以下代码过滤来自django数据库(mysql)的结果:

  1. queryset = MyModel.objects.filter(value_name__icontains=search).order_by("pk")
  2. class MyModel(models.Model):
  3. ...
  4. value_name = models.CharField(unique=True, max_length=255)
  5. ...
  6. class Meta:
  7. managed = False
  8. db_table = "my_table"

字符串
字段value_name=utf8mb4_0900_bin的排序规则值
search = "bin"的值得到一组结果时,结果中有子字符串“bin”。
search="Bin"的值时,我得到另一组结果。结果中有子字符串“Bin”。
这两者的结果没有任何交集。
这看起来像是一个排序规则问题,如何解决这个问题?我不能更改数据库上的任何内容,因为我只有读取权限。
我的Django版本是3.2。
我试过这个,但它不起作用。
value_name = models.CharField(unique=True, max_length=255, db_collation='utf8_general_ci')

vlju58qv

vlju58qv1#

我怀疑这是整理。
您的表有managed=False,因此更改模型上的字段定义来设置排序规则对您没有帮助。您需要检查实际数据库中的表定义-如果没有定义排序规则,它将无法工作。

相关问题