【发布时间】:2012-06-07 16:33:32
【问题描述】:
有没有办法一次性完成以下任务:
Model.objects.get(id=1) else None
我找到的唯一方法是这样做:
try:
object = Model...
except:
object = None
有没有办法在 django 的一次调用中做到这一点?
更新:除了try/except 块之外,似乎没有其他方法可以做到这一点,但这里有一个更好的答案:In Django, how do I objects.get, but return None when nothing is found?
【问题讨论】:
-
好吧,看来你已经解决了你的问题。作为一个附加参数,使用 try: ... except(使用特定异常)在 Python 中被认为是一种很好的做法(更不用说 Django,它或多或少遵循相同的理念)。
-
(Model.objects.filter(pk=1) or [None])[0]不太明确,但有时也很有用。 -
我不太喜欢它是一个未命名的例外。这里涉及到的具体
Exception子类是什么? -
它是
YourModel.DoesNotExist或FooBar.DoesNotExist
标签: django django-models