user = User.objects.filter(username="ali").first()
print(user.email)
🔹اگر کاربری با نام
ali وجود نداشته باشه، مقدار user برابر با None میشه و این خطا رو میگیریم:AttributeError: 'NoneType' object has no attribute 'email'
🔹راه ساده اینه که قبل از استفاده، وجود کاربر رو بررسی کنیم:
user = User.objects.filter(username="ali").first()
if user is None:
print("کاربر پیدا نشد")
else:
print(user.email)
🔹اگر فقط میخوای یک کاربر مشخص رو پیدا کنی، میتونی از
get_object_or_404 استفاده کنی:from django.shortcuts import get_object_or_404
user = get_object_or_404(User, username="ali")
print(user.email)
🔹در این حالت اگر کاربر پیدا نشه، جنگو بهجای خطای نامفهوم
NoneType، پاسخ 404 برمیگردونه.🔹نکته مهم اینه که متد
first() هیچوقت خطا نمیده؛ اگر چیزی پیدا نکنه، None برمیگردونه. پس هرجا از first() استفاده کردی، حواست به مقدار برگشتی باشه.🐍 @python_rd