Как отделить объекты в Django Admin? - PullRequest
1 голос
/ 22 апреля 2019

У меня есть приложение под названием «Продукт» со следующими моделями.Продукты , в зависимости от того, featured = True или False.Таким образом, по умолчанию все продукты перечислены в разделе Продукты .Но если featured = True они будут перемещены в раздел Рекомендуемые товары .Можете ли вы помочь мне, как это сделать?Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2019

Три шага:

  1. Запись прокси-модели для модели Product.
  2. Изменение менеджера по умолчанию только на возвратРекомендуемые продукты.
  3. Зарегистрируйте свою прокси-модель в администраторе, как и любую другую модель.

Подробнее об этом можно прочитать здесь: Использование прокси-моделей для настройки Django Admin

0 голосов
/ 22 апреля 2019

Есть несколько способов сделать это.Возможно, самое простое - создать представление базы данных, а затем инкапсулировать его, используя модель django.Вы можете создать представление, например, в консоли базы данных:

CREATE VIEW view_name AS
  SELECT columns
  FROM tables
  [WHERE conditions];

Как только вы это сделаете, вы можете ссылаться на представление в django следующим образом:


class FeaturedProduct(modes.Model):
    attr1 = models.CharField()

    class Meta:
        managed = False
        db_table = '<name of your view here>'

Убедитесь, что managed установлен на False.Вот соответствующая документация для этого.Вы хотите сделать это, потому что django не создает эту модель для вас, а вы создаете ее самостоятельно.

Другой способ сделать это - создать пользовательский Manager.Эти менеджеры позволяют вам изменять атрибут objects вашей модели, позволяя вам установить требуемый набор запросов.Я думаю, что вы захотите взглянуть на документацию Manager и посмотреть на определение пользовательских наборов запросов для ваших объектов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...