如何使用特定值对django查询进行排序?
我在Django有一个这样的模型:如何使用特定值对django查询进行排序?,django,django-templates,django-queryset,Django,Django Templates,Django Queryset,我在Django有一个这样的模型: class Session(models.Model): user = models.ForeignKey(User) session_name = models.CharField(max_length=254) server_full_path = models.CharField(max_length=254) # Contains server server_name = mo
class Session(models.Model):
user = models.ForeignKey(User)
session_name = models.CharField(max_length=254)
server_full_path = models.CharField(max_length=254) # Contains server
server_name = models.CharField(max_length=254) #Server Name or IP
file_path = models.CharField(max_length=254) #full file path
source_username = models.CharField(max_length=100)
source_password = models.CharField(max_length=100)
make_default = models.BooleanField()
我正在使用此查询获取所有服务器\u id:
all_server_id = Session.objects.filter(user_id=request.user.id)
我希望对查询进行排序,使make_default=1的值首先出现。我想在模板中显示这个。如何执行此操作?如果要对查询进行排序,应使用order_by()函数,例如:
all_server_id = Session.objects.filter(user_id=request.user.id).order_by('make_default')
你所要做的就是:
all_server_id = Session.objects.filter(user_id=request.user.id).order_by('-make_default')
我相信这些评论回答了你的问题。我不确定你想要什么。似乎您希望按
设置默认值进行排序,但同时您希望在模板上显示所有这些内容,您希望for循环以保留此顺序的方式循环,我更正了?是的。但是,当我执行for循环时,我希望首先显示make_default=1的数据,然后第一个答案将为您执行此操作。试试看,怎么会不行呢?尝试使用此all\u server\u id=Session.objects.filter(user\u id=request.user.id)。order\u by('-make\u default')
。make_default
不是一个布尔字段吗?是的,它是一个布尔字段,在放入“-”之后,它起作用了。谢谢你,伙计!