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)
Вернуться на верх