使用 if 語句檢查內容類型以確定要執行的操作

虹膜

我有一個關聯通用關係的 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用泛型類型執行 EntityFramework Core LINQ 查詢

避免使用 if 語句檢查 dict 中的鍵

使用 BlobServiceClient 設置內容類型

如何在 bash 腳本中使用 switch case 語句來執行不同的操作?

如何避免使用不同的 If 循環檢查所有內容?

即使條件語句檢查它的類型正確,Kotlin 中的 ClassCastException

python:使用類型提示動態檢查類型

在sql中使用group by語句時如何檢查多個條件

如何僅使用 2 個 if 語句檢查 3 種可能性

使用VBA根據excel單元格內容更改字體類型

使用 FastAPI testclient 時如何檢查 JSON 響應類型

如何使用 ArchUnit 檢查是否在正確的類中調用了構造函數?

Error(1064) (42000) : 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 9 行“)”附近使用的正確語法

如果變量內的語句使用

您如何執行安全類型轉換的檢查?

如何在不使用“if”語句的情況下檢查整數數組是否已排序?

使用“import”導入的所有內容都會獲取類型,但 require() 不會

如何使用javascript將檢查屬性添加到輸入類型文本中

如何使用javascript檢查元素是否具有類

SaxonHE:如何在 XQuery 執行中使用 XSD 類型

在 Rust 中使用 if 語句時的不同函數類型

我想檢查所有 for 循環迭代的條件,然後執行該語句

使用通用基測試類進行測試時正確使用內部類

從文件內容讀取和執行操作

是否可以在不重複的情況下執行我在 IF EXISTS 語句中使用的相同查詢?

MemorySanitzer 警告在 `struct stat` 中使用未定義的內存;不過,我確實檢查了 `stat` 返回值

在不使用 for 循環的情況下在 Pandas 中執行此操作的正確方法

使用 Pymongo, group 時如何查詢所有內容?不使用累積?

TypeScript `extends` 條件類型語句僅在使用泛型表達時才有效?