我在模型上定義了一對一關係。我們稱之爲父模型A和相關模型B. B並不總是存在。當我與A的實例交互時,如何確定B是否存在而不必捕獲DoesNotExist?當我嘗試訪問B的一個實例時(例如print a.b
),我收到一個DoesNotExist異常。當存在與其工作關係相對應的DB行時。這是在Django 1.5。如何檢查對象關係是否已填充DoesNotExist
簡化模型定義了我的頭頂部(以這種形式未測試):
class A:
...
class B:
a = models.OneToOneField(A, related_name='a')
name = models.TextField(...)
fields = ['b__name']
a = A.object.filter(pk=id).selected_related(*fields)
print(a.b)
表B有A_ID的外鍵。
我的問題的原因是確定是否有更簡潔的方式通過API執行此操作,而不是捕獲異常。
你能展示你的模型定義嗎? – falsetru 2014-10-03 14:26:01
爲什麼你不想捕捉B.DoesNotExist?這是非常標準的異常處理。 – scoopseven 2014-10-03 14:46:12
你的ForeignKey字段是否允許空值? – Brandon 2014-10-03 14:55:00