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