获取单个对象而不引发异常的快捷方式?

时间:2011-10-28 22:30:53

标签: django django-models

如果项目不存在,我想简单地执行以下操作而不引发异常:

User.objects.get(email_address = email_address)

Django中有这个快捷方式吗?我只想检查用户是否存在给定的电子邮件地址。

1 个答案:

答案 0 :(得分:3)

您可以使用queryset方法exists()

来自django docs

  

<强>存在()
  如果QuerySet包含任何结果,则返回True,否则返回False。

在你的情况下:

User.objects.filter(email_address=email_address).exists()

如果有多个用户使用此电子邮件地址,exists仍会返回True,而get()会引发User.MultipleObjectsTeturned例外。