假设我在 Django 中有以下模型
class Book(models.Model):
id = models.AutoField(primary_key=True)
volumes = JSONField()
我想获取所有书籍的标题长度作为值 -
[
{
"id": 1,
"volumes": [
{
"order": 1
},
{
"order": 2
}
],
"length_of_volumes": 2
},
]
我尝试了以下方法,但这不是正确的方法,因为它不是 CharField -
from django.db.models.functions import Length
Books.objects.all().values('id', 'title', length_of_valumes=Length('volumes'))
最佳答案
len('title')
将仅确定 字符串 'title'
的长度,因此它有五个字符,因此 .values(…)
,则使用 .values(length_of_title=5)
。
您可以使用Length
expression [Django-doc] :
from django.db.models.functions import <b>Length</b>
Books.objects.values('id', 'title', length_of_title=<b>Length('title')</b>)
Note: normally a Django model is given a singular name, so
Book
instead of.Books
关于django - 如何对 Django 查询集中选择的值应用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65197772/