رفع مشکل auth.User.groups: (fields.E304) Reverse accessor for User.groups در جنگو
در این نوشته به روش حل خطای زیر
auth.User.groups: (fields.E304) Reverse accessor for ‘User.groups’ clashes with reverse accessor for ‘UserManage.groups’
میپردازیم.
رفع مشکل auth.User.groups: (fields.E304) Reverse accessor for User.groups در جنگو
این خطا زمانی رخ میدهد که بخواهید از جدول user که جدول اصلی جنگو است و کاربران را در خود نگه میدارد به عنوان یکی از جدولهای پروژهی خود استفاده کنید و مجددا برای user مدل جداگانه طراحی نکنید. بعد از انجام اینکار شما با خطای
auth.User.groups: (fields.E304) Reverse accessor for ‘User.groups’ clashes with reverse accessor for ‘UserManage.groups’
روبرو خواهید شد که برای رفع آن باید وارد فایل تنظیمات اصلی جنگو که settings.py است بشوید و سپس کد زیر را درون آن قرار دهید:
AUTH_USER_MODEL = 'YourAppName.YourClassName'
کد بالا را متناسب با نام مدل خود تغییر دهید تا مشکل شما رفع شود. بعد از انجام این کار یک بار اجرای جنگو را متوقف و مجددا اجرا کنید.
اگر مشکل شما رفع نشد در بخش نظرات همین نوشته برای ما بنویسید.



















اگر چند اپ داریم و هرکدوم مدل User جدا دارن، راه حل چیه؟
سلام، اگر هر اپلیکیشن مدل User سفارشی خودش را داشته باشد، باید در settings.py مشخص کنید که کدام مدل به عنوان AUTH_USER_MODEL استفاده شود و از تکرار آن در اپلیکیشنهای دیگر خودداری کنید.
بعد از اعمال تغییر، سرور حتما باید ریاستارت بشه؟
بله، حتماً. بعد از اعمال تغییرات، لازم است سرور جنگو را یک بار متوقف و مجدداً راهاندازی کنید تا تغییرات اعمال شوند.
این مشکل روی Django 4 هم هست یا فقط نسخههای قدیمی؟
سلام، این مشکل در نسخههای جدیدتر جنگو نیز ممکن است رخ دهد. استفاده از AUTH_USER_MODEL همچنان راهحل مناسبی است.
اگه فقط بخوایم یه فیلد اضافه کنیم، این clash باز هم ظاهر میشه؟
سلام، بله اگر مدل سفارشی شما فیلد groups داشته باشد، این تداخل همچنان رخ میدهد. برای حل آن باید AUTH_USER_MODEL را تنظیم کنید.
این خطا وقتی پیش میاد که بخوایم دو مدل جدا برای User داشته باشیم؟
سلام! خیر، این خطا زمانی رخ میدهد که شما از مدل User پیشفرض جنگو استفاده میکنید و در مدل دیگری نیز یک فیلد groups تعریف میکنید که باعث تداخل میشود.