我在模型上定义了一对一关系。我们称之为父模型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