django额外选择到qs

Posted

技术标签:

【中文标题】django额外选择到qs【英文标题】:django extra select to qs 【发布时间】:2021-11-26 19:14:12 【问题描述】:

如何在查询集中添加附加选择?

queryset = ActivityCollection.objects.filter(date_at__gte=from_date, date_at__lte=to_date).order_by('date_at')

看起来


        "date_at": "2021-11-24",
        "views": 25,
        "clicks": 1,
        "cost": "25.00"
,

我需要得到:


        "date_at": "2021-11-24",
        "views": 25,
        "clicks": 1,
        "cost": "25.00",
        "cpc": "25"

每次点击费用 = 费用/点击次数

【问题讨论】:

【参考方案1】:

您可以在模型中使用属性属性。 例如:

class Company(models.Model):
    # your fields
    views = models.IntegerField()
    cost = models.IntegerField(

    @property
    def cpc(self):
        return self.cost/self.views

【讨论】:

以上是关于django额外选择到qs的主要内容,如果未能解决你的问题,请参考以下文章

表单 ModelChoiceField 查询集 + 额外选择字段 django 表单

Django预取相关并存在

Django 将额外字段添加到从模型生成的 ModelForm

在 Django 中使用额外的斜杠重定向 url 的最佳方法?

django-rest-auth 自定义注册无法保存额外字段

django logging - django.request 记录器和额外的上下文