【问题标题】:How to add a new field with initial value to django queryset result?如何将具有初始值的新字段添加到 django 查询集结果?
【发布时间】:2019-11-24 07:33:51
【问题描述】:

我有一个这样的查询集:

<QuerySet [{'id': 5}, {'id': 4}]>

我想用初始值0向它添加新字段n

<QuerySet [{'id': 5, 'n': 0}, {'id': 4, 'n': 0}]]>

这是我目前的代码:

drivers_not_in_rides = Driver.objects.all().filter(
        car__ride__in=ride_ids_with_conditions
).values('id').annotate(
    n=0
)

但我收到此错误:

'int' object has no attribute 'resolve_expression'

谁能给我一些建议吗?

【问题讨论】:

    标签: django python-3.x django-queryset


    【解决方案1】:

    你可以像这样使用Value

    from django.db.models import Value
    
    drivers_not_in_rides = Driver.objects.all().filter(
        car__ride__in=ride_ids_with_conditions
    ).values('id').annotate(
        n=Value(0, output_field=IntegerField())
    )
    

    【讨论】:

    • 还有output_field=IntegerField()
    • 谢谢,@AliAbbasifard。我已经编辑了帖子以添加它。
    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2017-11-15
    • 2017-06-24
    • 2018-11-19
    相关资源
    最近更新 更多