Можно ли присвоить индекс объектам в отношениях ManyToMany? Если у меня есть эти модели:Присвоить индекс ManyToMany через модель
class Group(models.Model):
items = models.ManyToManyField(GroupItem, unique=False, through=GroupItem)
class GroupItem(models.Model):
group = models.ForeignKey(Group, unique=False)
index = models.IntegerField()
Когда я создаю элемент группы, я хотел бы иметь возможность сортировать этот элемент по индексу. Так что если, например, у меня есть группа:
MyGroup = [MyItem1, MyItem2, MyItem3]
Но я хотел бы MyItem3
быть первым товаром, как так:
MyGroup = [MyItem3, MyItem1, MyItem2]
Как я могу это сделать? Бонус, если я могу иметь индекс автоматически увеличивается, поскольку все больше объектов будут добавлены в Group
Я не получаю ваш вопрос. Если вы используете 'index' в качестве критериев сортировки, почему вы не можете сделать' order_by' для сортировки 'GroupItem'? Если вы хотите, чтобы 'MyItem3' был первым, просто сделайте его с наименьшим индексом, было бы хорошо, не так ли? –
@ShangWang Я хочу избежать пробелов между индексами и автоматически увеличивать их для этой конкретной группы, к которой она принадлежит. –
Я думаю, вам нужно написать некоторую логику для этого. Я сделал что-то подобное раньше, но у django нет встроенного способа сделать это. Реализация логики в сигнале 'pre_save' для модели' GroupItem' была бы способом. –