Django model queryset упорядочивает объекты в том же порядке, в каком они отображаются в filter_horizontal box
Мне трудно понять, как сделать запрос на объекты в модели Django, чтобы результаты запроса были точно такими, как объекты появляются в выбранном списке фильтра. Позвольте мне объяснить это более понятно. Предположим, у меня есть две модели, одна называется TakeawayWebshop, а другая Product. Модель TakeawayWebshop может продавать много продуктов, но когда клиент просматривает страницу продукта, я хочу, чтобы продукты появлялись в том порядке, в котором я включил их в поле фильтра.
В models.py
class TakeawayWebshop(models.Model):
name = models.CharField(max_length = 255, help_text = 'name of takeaway restaurant')
products = models.ManyToManyField(Product)
class Product(models.Model):
name = models.CharField(max_length = 50, unique=True)
description = models.TextField()
price = models.DecimalField(max_digits=9, decimal_places=0, default=0.00)
class Meta:
ordering = ['-created_at']
В файле admin.py я добавил товар в filter_horizontal. Возможно ли получить набор продуктов, добавленных в TakeawayWebshop в том же порядке, в котором они появляются в filter_horizontal? Также в настоящее время невозможно перемещать товар вверх или вниз в блоке filter_horizontal из админки. Есть ли умный способ реализовать эту функцию?
class TakeawayWebshopAdmin(admin.ModelAdmin):
form = TakeawayWebshopAdminForm
list_display = ['name']
ordering = ['name']
filter_horizontal = ('products',)
admin.site.register(TakeawayWebshop, TakeawayWebshopAdmin)