有没有办法在一次调用中完成以下操作:
Model.objects.get(id=1) else None
我找到这样做的唯一方法是:
try:
object = Model...
except:
object = None
有没有办法在 django 的一次调用中做到这一点?
更新:除了在一个块中似乎没有其他方法可以做到这一点,try/except
但这里有一个更好的答案:
有没有办法在一次调用中完成以下操作:
Model.objects.get(id=1) else None
我找到这样做的唯一方法是:
try:
object = Model...
except:
object = None
有没有办法在 django 的一次调用中做到这一点?
更新:除了在一个块中似乎没有其他方法可以做到这一点,try/except
但这里有一个更好的答案:
这个怎么样:
obj = Model.objects.filter(id=1).first()
现在如果没有 id=1 的对象存在 obj 将是 None
参考:https ://docs.djangoproject.com/en/3.2/ref/models/querysets/#django.db.models.query.QuerySet.first
如果您在 Web 请求中使用它,并且如果对象不存在,您想返回 404,也许您应该使用
get_object_or_404(Mode, pk=1)
get_object_or_404
在你的模型中做。. .
@models.permalink
def get_absolute_url(self):
return "/blog/%s/" self.slug
这个怎么样?
model_to_find = next(iter(Model.objects.filter(id=1)), None)