有没有办法能够使用外键来引用不同类的对象
例如,这就是我正在做的事情:
Class discussion(models.Model):
id_discussion = models.CharField(db_column='id_Discussion', primary_key=True, max_length=100)
id_worker = models.ForeignKey('Worker', models.CASCADE, db_column='id_user', blank=True, null=True)
id_director = models.ForeignKey('Director', models.CASCADE, db_column='id_user', blank=True, null=True)
Class Message(models.Model):
#some other fields
id_sender = models.CharField(db_column='id_Sender', max_length=100, blank=True, null=True)
id_receiver = models.CharField(db_column='id_Receiver', max_length=100, blank=True, null=True)
id_discussion = models.ForeignKey('discussion', models.CASCADE, db_column='id_Discussion', blank=True, null=True)
我想将id_receiver和id_sender转换为外键,我的问题是发件人可能是“Worker”类或“Director”类的对象。
答案 0 :(得分:1)
是。您可以使用GenericForeignKey
查看此处:
https://docs.djangoproject.com/en/2.0/ref/contrib/contenttypes/#generic-relations
注意:这可能效率很低。阅读本文以了解有关它的更多信息https://lukeplant.me.uk/blog/posts/avoid-django-genericforeignkey/