【发布时间】:2013-03-28 10:24:18
【问题描述】:
我有 3 个模型的用户资料和组:
class UserProfile(models.Model):
slug = models.SlugField(max_length=200)
user = models.ForeignKey(User, unique =True)
professionalNetwork = models.ForeignKey('SubForum',null=True, blank=True)
class Group(models.Model):
slug = models.SlugField(max_length=200)
name = models.CharField(max_length=200)
professionalNetwork = models.ForeignKey('SubForum')
class SubForum(models.Model):
name = models.CharField(max_length=200)
我如何获得所有组,首先是与特定用户具有相同专业网络的组,然后是其余组?
我正在研究 Group.objects.all().order_by('-professionalNetwork = profile.professionalNetwork') 之类的东西,但这当然行不通^^
谢谢你
【问题讨论】:
-
你不是说过滤吗?
-
过滤只会让我得到那些拥有相同专业网络的人。我希望它们都由具有相同专业网络的人首先订购。
-
这实在是太本地化的要求了。 Django 支持按一个或多个字段的值排序。您想要的将需要自定义条件检查然后订购。您可以在获取查询集后进行排序,也可以编写原始 SQL。
标签: python sql django sql-order-by django-queryset