有没有办法在一次通话中完成以下任务:
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?
答案 0 :(得分:21)
这个怎么样:
obj = Model.objects.filter(id=1).first()
现在如果没有id = 1的对象,则obj将为None
参考:https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.query.QuerySet.first
答案 1 :(得分:2)
如果您在Web请求中使用它,并且如果该对象不存在则您想返回404,那么您应该使用
get_object_or_404(Mode, pk=1)
答案 2 :(得分:0)
get_object_or_404
在你的模型中。 。
@models.permalink
def get_absolute_url(self):
return "/blog/%s/" self.slug