0

我有 django 模型与关联的通用关系。

class SectionLine(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    ...
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.UUIDField( default=uuid.uuid4, editable=True)
    content_object = GenericForeignKey('content_type', 'object_id')

在大多数情况下,通用关系与这两个模型之一相关联

class Title(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title_name = models.CharField(max_length=40)
    ....


class JobPosition(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    ...

在视图函数中,我试图找出特定实例之间的模型Title以及JobPosition与特定SectionLine实例相关联的模型,以便我可以确定下一步要做什么。

我现在可以访问SectionLine.content_type以查看内容类型(例如,它打印titles_and_names | title- 应用程序名称是titles_and_names),但我不知道将其与什么进行比较......

基本上,if SectionLine.content_type == ???

4

1 回答 1

0

您可以使用 ContentType.objects.get_for_model 来比较 https://docs.djangoproject.com/en/3.2/ref/contrib/contenttypes/#django.contrib.contenttypes.models.ContentTypeManager.get_for_model

if SectionLine.content_type == ContentType.objects.get_for_model(Title)

于 2021-11-15T14:45:53.127 回答