我想根据文本的长度过滤我的模型
就像是
MyModel.objects.filter(len(text) > 10)
其中 text 是 MyModel 模型中的 Char 或 Text 字段
对于现代 Django (>=1.9)@海内克 https://stackoverflow.com/users/448474/hynekcer's 答案更好 https://stackoverflow.com/a/45260608/623735.
对于 Django >= 1.8 你可以使用注解和长度函数 https://docs.djangoproject.com/en/1.8/ref/models/database-functions/#django.db.models.functions.Length:
from django.db.models.functions import Length
qs = MyModel.objects.annotate(text_len=Length('text_field_name')).filter(
text_len__gt=10)
在幕后,Django 使用的是 @Pratyush 的建议CHAR_LENGTH() https://stackoverflow.com/a/19296333/623735MariaDB(MySQL)功能。但姜戈Length
函数将适用于任何 Django 兼容的数据库,方法是使用LENGTH()
用于 Postgres 和其他数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)