get_object_or_404
вызовет ошибку, если элемента вообще нет, или если таких элементов несколько, поскольку базовая реализация должна использовать .get(..)
. Вы можете использовать .exists()
вместо:
class Subscriber(models.Model):
# …
def is_unsubscribed(self):
return MasterUnsubscriber.objects.filter(unsubscriber_email=self.mail)<b>.exists()</b>
При этом я бы посоветовал использовать ForeignKey
[Django -doc] абоненту, не сопоставляя адрес электронной почты. Это будет неэффективно, так как поиск по неиндексированному столбцу медленный, и, кроме того, если пользователь позже изменяет свою электронную почту, то внезапно они могут быть снова подписаны. Django также имеет удобные способы фильтрации или создания агрегатов для связанных объектов, поэтому вы получаете больше от Django ORM.