【发布时间】:2015-11-05 20:11:34
【问题描述】:
使用这些模型:
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
order_index = models.IntegerField(unique=True)
class Meta:
ordering = ['order_index']
我一直在尝试让以下代码工作:
group = Group.objects.get(id=1)
group.members.all() # I want the resulting membership objects to ordered by order_index as default.
这可能吗?类似questions 的答案需要你写group.members.all().order_by(...)。我正在尝试使用它,因此默认情况下结果按order_index 排序。
【问题讨论】:
-
您需要为 Person 提供 date_joined 属性并在表单中设置一个值,或者在模型中将此参数用于 date_joined 属性 auto_add_now=True。然后参考下面我的回答。
标签: django django-models django-1.8