Всем привет!
Возник такой вопрос:
Допустим, есть модели:
modelA
modelB
Поля у них одинаковые (title, body, user, timestamp).
Есть третья модель, которая по FK должна ссылаться или на modelA или на modelB. Вопрос, как лучше это реализовать, я вижу два варианта, но оба мне не особо нравятся:
-
Сделать две версии третьей модели (абстрактный класс, от него наследуются две модели, у одной FK-modelA, у другой-modelB). Этот вариант не нравится, потому что по логике третья модель она одна, зачем делить ее на две, плюс скорее всего придется либо больше представлений писать, либо больше кода в представлениях.
-
Сделать в третьей модели два поля FK c blank=True, а в clean методе сделать проверку, чтобы хотя бы одно поле не было пустым. Но все равно как-то костыльно((
Может, есть какой-то более адекватный способ, о котором я пока не догадываюсь?