Я думаю GenericForeignKey
- это то, что вы ищете. Подробнее здесь .
class ForSale(models.Model):
method = models.CharField(choices=(('Cash', 'cash'), ('Rent', 'rent')), ...)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
...
Добавить проверки в поддержку content_type
, ограниченные SaleType
& SaleType2
. Также сохраняйте отношения в каждой строке между method
и content_type
.