Я делаю сайт где есть модели проектов разных типов которые наследуются от одного проекта
class Project(models.Model):
title = models.CharField(max_length=50, verbose_name='Название')
slug = models.SlugField(verbose_name='Slug')
content = models.TextField(verbose_name='Контент')
image = models.ImageField(null=True, blank=True,upload_to='images/%Y/%m/%d', verbose_name='Изображение')
tags = TaggableManager()
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
class Audio(Project):
file = models.FileField(upload_to='audio/%Y/%m/%d', verbose_name='Аудио Файл')
class Game(Project):
background_image = models.ImageField(upload_to='images/%Y/%m/%d', verbose_name='Изображение для страницы')
url = models.URLField(null=True, blank=True, verbose_name='URL')
yt_urls = models.URLField(null=True, blank=True, verbose_name='YouTube URL')
#И т.д.
И я делаю контроллер который дает модель проекта и мне нужно получить основную модель Game или Audio а не модель Project
def project_detail(request, rubric_slug, project_slug):
if rubric_slug == 'games':
project = Project.objects.get(slug=project_slug).game
return render(request, 'posts/game-detail.html', {'project': project})
elif rubric_slug == 'audio':
project = Project.objects.get(slug=project_slug).audio
return render(request, 'posts/audio-detail.html', {'project': project})
elif rubric_slug == 'movies':
project = Project.objects.get(slug=project_slug).movie
return render(request, 'posts/movie-detail.html', {'project': project})
elif rubric_slug == 'blogs':
project = Project.objects.get(slug=project_slug).blog
return render(request, 'posts/blog-detail.html', {'project': project})
Не хочу перебирать каждый тип проекта отдельно