1

我正在尝试对对象进行排序。这是我的代码:

ratings = Rate.objects.order_by(sortid)
locations = Location.objects.filter(locations_rate__in=ratings).order_by('locations_rate').distinct('id')

这是我的模型:

class Rate(models.Model):
  von_location= models.ForeignKey(Location,related_name="locations_rate")
  price_leistung = models.IntegerField(max_length=5,default=00)
  bewertung = models.IntegerField(max_length=3,default=00)

我怎样才能以等于的顺序获得所有位置ratings

我上面的东西不起作用。
编辑

def sort(request):
  sortid = request.GET.get('sortid')
  ratings = Rate.objects.all()
  locations = Location.objects.filter(locations_rate__in=ratings).order_by('locations_rate__%s' % sortid).distinct('id')
  if request.is_ajax():
    template = 'resultpart.html'
    return render_to_response(template,{'locs':locations},context_instance=RequestContext(request))
4

1 回答 1

2

您必须指定用于对Rate对象进行排序的字段,例如:

ratings = Rate.objects.all()
locations = Location.objects.filter(
    locations_rate__in=ratings
).order_by('locations_rate__%s' % sortid).distinct('id')

您不需要ratings事先排序。

文档提供了order_by在相关字段上使用的示例。

于 2013-04-20T07:54:29.437 回答