Django - 在不使用通过的情况下对中间模型的id进行多对多的关系

时间:2016-11-16 07:34:12

标签: python django

我在排序多个字段时遇到问题。

我在爱好领域有很多关系。 我想保持订单用户添加爱好。这可以通过对中间模型id上的记录进行排序来完成。

许多人建议使用并添加一些字段进行订购。 但是当我使用相关模型的添加功能创建记录时,这会产生问题。

有没有办法为中间模型提供元排序,因此当我访问数据时它可以按id排序。

我的模型是 -

class User(AbstractBaseUser, PermissionsMixin):   
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    hobbies = models.ManyToManyField('UserHobby')

class UserHobby(models.Model):
    hobby = models.CharField(max_length=100)

1 个答案:

答案 0 :(得分:0)

如果显式定义直通模型,则可以提供元排序。如果没有,您仍然可以使用QuerySet对象的order_by()方法来提供所需的排序,如下所示:

user = Users.objects.get(id=1)

user.hobbies.all().order_by('id')