Python 是否可以将其他字段添加到所有查询集中?德扬戈

Python 是否可以将其他字段添加到所有查询集中?德扬戈,python,django,django-models,lambda,django-queryset,Python,Django,Django Models,Lambda,Django Queryset,例如,我在模型中有一个querysets class ModelA(models.Model): name = models.Charfield(max_length=256) ageMin = models.IntegerField(null=True, blank=True) ageMax = models.IntegerField(null=True, blank=True) def age(self): low = self.ageMin

例如,我在模型中有一个
querysets

class ModelA(models.Model):
    name = models.Charfield(max_length=256)
    ageMin = models.IntegerField(null=True, blank=True)
    ageMax = models.IntegerField(null=True, blank=True)

    def age(self):
      low = self.ageMin
      high = self.ageMax
      if low and high:
          return str(low) + ' - ' + str(high)
      if low:
          return str(low)
      if high:
        return str(high)
假设我有一个查询集来获取
ModelA
实际上,我想在所有查询集中添加一个字段,例如名为
age\u gap
的字段,它是模型本身的
def age
,因此每个查询集还将有一个名为
gap\u gap
的额外字段,而不仅仅是
name、ageMin、ageMax

我尝试了下面的方法,但没有成功

all_q = ModelA.objects.filter()
qs = map(lambda x: x.update({'age_gap': x.age()}), all_q)
上述方法不起作用

所以我想试试类似的东西 对于所有_q中的q: q['age_gap']=q.age()

当然,这也给了我错误

有人能帮我一个忙吗


提前感谢

您可以使用
@property
@cached\u property

class ModelA(models.Model):
    name = models.Charfield(max_length=256)
    ageMin = models.IntegerField(null=True, blank=True)
    ageMax = models.IntegerField(null=True, blank=True)

    def age(self):
      low = self.ageMin
      high = self.ageMax
      if low and high:
          return str(low) + ' - ' + str(high)
      if low:
          return str(low)
      if high:
        return str(high)

    @property
    def age_gap(self):
        return self.age()

您可以使用
@property
@cached\u property

class ModelA(models.Model):
    name = models.Charfield(max_length=256)
    ageMin = models.IntegerField(null=True, blank=True)
    ageMax = models.IntegerField(null=True, blank=True)

    def age(self):
      low = self.ageMin
      high = self.ageMax
      if low and high:
          return str(low) + ' - ' + str(high)
      if low:
          return str(low)
      if high:
        return str(high)

    @property
    def age_gap(self):
        return self.age()

当你想引用年龄函数时,只使用年龄函数有什么不对吗?当你想引用年龄函数时,只使用年龄函数有什么不对吗?