Django подкласс ContentTypeManager

Я разрабатываю приложение, которое имеет 3 модели:

  • Музыкант
  • Альбом
  • Песня

Я хотел бы написать пользовательский метод ContentTypeManager, который я могу вызвать в views.py, что позволит мне получить доступ ко всем трем моделям с помощью одного метода.

e.g.

music_data = ContentType.objects.get_music(musician='Beatles')

Этот метод возвращает словарь, который я могу передать в шаблон. Словарь будет выглядеть так, как показано ниже:

music_data = {'Abbey Road': ['Song 1', 'Song 2', 'Song 3', etc. ]}

У меня нет проблем с написанием метода, который возвращает словарь music_data. Однако я не уверен, как подкласс ContentTypeManager для создания пользовательского метода ContentTypeManager.

Я попробовал создать модель, которая наследуется от ContentType, и подклассифицировать менеджер аналогично тому, как обычно создается менеджер пользовательской модели, но при этом создается новая таблица базы данных и не ссылается на существующую таблицу ContentType. Код, который я пробовал, выглядит следующим образом:

#models.py

from django.contrib.contenttypes.models import ContentType
from .managers import CustomContentTypeManager

class CustomContentType(ContentType):

    objects = CustomContentTypeManager()

#managers.py

from django.contrib.contenttypes.models import ContentTypeManager

class CustomContentTypeManager(ContentTypeManager):

    def  = get_music(self):
    # Insert code to query models via ContentType model

Любая помощь будет очень признательна.

Вернуться на верх