我正在尝试创建一个消息系统,其中消息的发件人和收件人可以是通用实体.这对于发件人来说似乎很好,其中只有引用对象(GenericForeignKey),但我无法弄清楚如何为收件人解决这个问题(GenericManyToManyKey ??)
下面是一个简化的例子.PersonClient和CompanyClient从Client继承属性,但具有自己的特定详细信息.最后一行是关键点.如何允许邮件收件人成为一组CompanyClients和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)
Run Code Online (Sandbox Code Playgroud)