我的 Django 模型使用函数模型,即公司中的通用函数(例如:CFO)。
在此模型中,我希望有一个字段指向持有该功能的默认人员 + 另一个指向备用人员的字段以防出现问题。该字段中的每一个都应该能够指向各种模型(用户模型+一个尚未在网站上登录的人的模型)
只要我只指向一个模型,这很容易:
class Function(models.Model):
function_name = models.CharField(max_length=255, blank=True) # e.g. CFO
main_user = models.ForeignKey('auth.User', on_delete=models.SET_NULL, null=True, blank=True)
backup_user = models.ForeignKey('auth.User', on_delete=models.SET_NULL, null=True, blank=True)
但是如果我希望这两个字段中的每一个都指向不同的模型,我需要使用 ContentType,例如:
class Function(models.Model):
functionname = models.CharField(max_length=255, blank=True) # e.g. CFO
#GenericForeignKey:
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey()
如何在一个模型中有两个 GenericForeignKey?(对于 main_user 和 backup_user)?
非常感谢您的帮助,我对如何进行感到困惑