我有一個關聯通用關係的 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 == ???
您可以使用 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句