TGViewer
PyCoders (پایتون) PyCoders (پایتون) @python_rd · 4.1K subscribers
Post #2165 426
🔆 یکی از خطاهای رایج پایتون اینه:

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
  • ❤ 1
More from @python_rd
  1. Oct 13, 2026کوییز پایتون 🔆 خروجی اجرای کد زیر چیست؟ t = (1, 2, [3, 4]) try: t[2] += [5] except TypeEr…
  2. Oct 13, 2026🔆 راز مکانیزم پیاده‌سازی و تغییر جهت NaN در الگوریتم مرتب‌سازی پایتون (Timsort) 🔹 باگ ری…
  3. Oct 13, 2026🔆 حذف تاریخی GIL از پایتون (Free-threaded Python) 🔹 یک رویداد تاریخی: حذف قفل مفسر (GIL)…
  4. Oct 11, 2026🔆 مدیریت تمیز منابع با Context Managerهای سفارشی (contextlib) 🔹 ساخت Context Managerها م…
  5. Oct 10, 2026🔆 چرا برای داده‌های حجیم نباید از return استفاده کنی؟ 🔹 وقتی یک تابع لیست بزرگی از داده‌…
  6. Oct 10, 2026🔆 خروجی این تکه کد چیه؟ def add_item(item, lst=[]): lst.append(item) return lst print(add…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →