相关疑难解决方法(0)

通用的多对多关系

我正在尝试创建一个消息系统,其中消息的发件人和收件人可以是通用实体.这对于发件人来说似乎很好,其中只有引用对象(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)

python generics django many-to-many django-models

47
推荐指数
3
解决办法
1万
查看次数

标签 统计

django ×1

django-models ×1

generics ×1

many-to-many ×1

python ×1