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
Любая помощь будет очень признательна.