Django如何按临时字段、动态创建字段排序

Django如何按临时字段、动态创建字段排序,django,django-queryset,Django,Django Queryset,想想这些: 这是一个函数 def calculate(model): model.tempfield = 1 此函数将在此模型中保存一个临时字段 您可以在任何地方使用model.tempfield 但如果是查询集,在这些临时文件发出的订单之后,将丢失 如何通过queryset中的这些临时字段订购_ 我有两种型号: Class A(models.Model): name = models.CharField(maxlength=100) Class Log_Of_A(model

想想这些: 这是一个函数

def calculate(model):
    model.tempfield = 1
此函数将在此模型中保存一个临时字段 您可以在任何地方使用model.tempfield 但如果是查询集,在这些临时文件发出的订单之后,将丢失

如何通过queryset中的这些临时字段订购_

我有两种型号:

Class A(models.Model):
    name = models.CharField(maxlength=100)

Class Log_Of_A(models.Model):
    clicks = models.IntegerField()
    a = models.ForeignKey(A)
    date = models.DateField(db_index=True)
并按日期计算日志

def createlog(request):
    start = request.GET.get("start")
    end = request.GET.get("end")
    all_A = A.objects.all()
    for a in all_A:
        logs=Log_Of_A.objects.filter(a=a,date__gt=start,date__lt=end)
        statistics = logs.aggregate(Sum("clicks"))
        a.clicks = statistics["clicks__sum"]
    all_A.order_by("clicks")
    return all_A
如何按临时字段订购\u请尝试以下操作:

import operator

def createlog(request):
  start = request.GET.get("start")
  end = request.GET.get("end")
  all_A = A.objects.all()
  for a in all_A:
    logs=Log_Of_A.objects.filter(a=a,date__gt=start,date__lt=end)
    statistics = logs.aggregate(Sum("clicks"))
    a.clicks = statistics["clicks__sum"]
  sorted = sorted(all_A, key=operator.attrgetter('clicks'), reverse=True)
  return sorted

是的,没错。order_by对数据库进行新查询,因此将丢失任何手动注释。你的问题是什么?谢谢你的评论,我用新的解释编辑了我的问题你的问题现在已经很清楚了:)