رفع مشکل django.core.exceptions.FieldDoesNotExist: User has no field named username جنگو
اگر در حال توسعهی یک برنامه با جنگو هستید و از یک مدل برای Custom User Model استفاده میکنید و با خطای django.core.exceptions.FieldDoesNotExist: User has no field named username روبرو شدهاید در این نوشته به روش رفع آن میپردازیم.
رفع مشکل django.core.exceptions.FieldDoesNotExist: User has no field named username جنگو
برای رفع خطای django.core.exceptions.FieldDoesNotExist: User has no field named username دو روش وجود دارد:
روش اول:
در مدلی که میخواهید به عنوان Custom User Model استفاده کنید در فیلدهای آن مدل قطعه کد زیر را قرار دهید:
USERNAME_FIELD = 'email'
روش دوم:
برای این موضوع در فایل settings.py کد زیر را وارد کنید:
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
اگر سوالی در ارتباط با این نوشته دارید در بخش نظرات همین نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]



















میشه فیلد دلخواه دیگهای غیر از ایمیل بذاریم مثلا phone number؟
بله، حتماً. شما میتوانید به جای ایمیل از فیلد دلخواه دیگری مانند شماره تلفن نیز استفاده کنید، کافیست نام آن فیلد را در `USERNAME_FIELD` مشخص نمایید.
این تغییر روی توکنهای JWT یا rest framework هم تاثیر میزاره؟
بله، این تغییرات ممکن است بر نحوه احراز هویت و پردازش توکنها در JWT و DRF تأثیر بگذارد، زیرا این ابزارها به فیلد نام کاربری برای شناسایی کاربر متکی هستند.
خطا بیشتر موقع migrate پیش میاد یا موقع login؟
این خطا معمولاً در زمان اجرای migrate یا هنگام تلاش برای ورود به سیستم رخ میدهد، به خصوص اگر تنظیمات مربوط به نام کاربری در مدل سفارشی شما به درستی انجام نشده باشد.
این تغییر روی auth backend پیشفرض جنگو هم تاثیر داره؟
سلام، بله این تغییرات روی احراز هویت پیشفرض جنگو نیز تاثیرگذار هستند.
وقتی فیلد username رو حذف کنیم، ثبتنام فقط با ایمیل انجام میشه یا میشه فیلد دیگهای هم گذاشت؟
سلام، اگر فیلد username را حذف کنید، میتوانید ثبتنام را فقط با ایمیل یا فیلد دیگری که تعریف میکنید انجام دهید.