У меня есть несколько похожих моделей в Django:
class Material(models.Model):
title = models.CharField(max_length=255)
class Meta:
abstract = True
class News(Material):
state = models.PositiveSmallIntegerField(choices=NEWS_STATE_CHOICES)
class Article(Material):
genre = models.ForeignKey(Genre, verbose_name='genre')
И модель Тема , которая связана с новостями и статьями как ManyToMany.
Я бы хотел использовать общие отношения «многие ко многим», как в этом случае . Но вопрос в том, как использовать виджет ManyToMany по умолчанию в админке django. Или другой удобный аналог.
UPD : Если бы я не использовал дженерики, я бы написал
class News(Material):
topic = models.ManyToMany(Topic)
class Article(Material):
topic = models.ManyToMany(Topic)
И я бы получил 2 идентичные таблицы, которые выражают эти отношения. Интересно, могу ли я использовать дженерики, чтобы иметь одну промежуточную таблицу, потому что не только новости и статьи могут иметь тему в моей базе данных. Новости и статьи также могут быть связаны с 2 или более темами.