Предоставление различных связанных имен для внешнего ключа для дочерних элементов при многостороннем наследовании в django
У меня есть эти модели:
class Theme(models.Model):
name = models.charfield()
class Product(models.Model):
theme = models.ForeignKey(Theme)
class PhysicalProduct(Product)
class Course(Product):
........
class Book(Product):
........
и я хочу получить только курсы и книги, связанные с определенной темой, с помощью метода prefetch_related
, но проблема в том, что я не думаю, что есть способ сделать это, кроме как добавить поле темы к каждому дочернему элементу модели Product
и дать каждому из них специфически связанное имя:
class Theme(models.Model):
name = models.charfield()
class Product(models.Model):
.......
class PhysicalProduct(Product):
theme = models.ForeignKey(Theme, related_name = 'physical_products')
class Course(Product):
theme = models.ForeignKey(Theme, related_name = 'courses')
........
class Book(Product):
theme = models.ForeignKey(Theme, realted_name = 'books')
........
есть ли способ сохранить поле theme в модели Product
и иметь возможность различать определенные типы продуктов, которые я хочу получать только с помощью prefetch_related