Я пытаюсь создать систему обмена сообщениями, в которой отправителем и получателями сообщения могут быть общие объекты. Это кажется хорошим для отправителя, где есть только объект для ссылки (GenericForeignKey), но я не могу понять, как это сделать для получателей (GenericManyToManyKey?)
Ниже приведен упрощенный пример. PersonClient и CompanyClient наследуют атрибуты от Клиента, но имеют свои собственные конкретные данные. Последняя строка - это точка прилипания. Как вы разрешаете получателям сообщений быть набором корпоративных клиентов и PersonClients
class Client(models.Model):
city = models.CharField(max_length=16)
class Meta:
abstract = True
class PersonClient(Client):
first_name = models.CharField(max_length=16)
last_name = models.CharField(max_length=16)
gender = models.CharField(max_length=1)
class CompanyClient(Client):
name = models.CharField(max_length=32)
tax_no = PositiveIntegerField()
class Message(models.Model):
msg_body = models.CharField(max_length=1024)
sender = models.ForeignKey(ContentType)
recipients = models.ManyToManyField(ContentType)