django 如何将我的函数添加到values参数?

x33g5p2x  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(302)

我有一个函数'is_recently',它检查我添加的项目已经挂了多长时间,如果还没有过30分钟,那么就写它最近在销售。我决定优化数据库中的查询,我不能将这个函数添加到值的参数中 功能,是否可以做到这一点呢?如果我写错了,请提前原谅我,我不会说英语。

def index(request):
    data = (
        Product
        .objects.select_related('category')
        .filter(is_on_main=True)
        .values('name','price','pk','date')
    )

也许还有其他功能。或者我不明白什么

dw1jzc5e

dw1jzc5e1#

达特是不可能的,因为这是一个属性,而不是一个字段。但是使用**.values(…)**[Django-doc]通常是糟糕的代码设计:它引入了primitive obsession code smell [coding-guru]

使用**.only(…)**[Django-doc]可能会更好,因为这仍然会创建模型对象,但只加载字段的子集。如果需要其他字段,则会进行额外查询:

def index(request):
    data = (
        Product.objects.select_related('category')
        .filter(is_on_main=True)
        .only('name', 'price', 'pk', 'date')
    )

相关问题