حذف یک فیلد از کلاس AbstractUser ارث بری شده


#1

سلام
من برای اینکه user خودمو داشته باشم اومدم تو فایل model یه کلاس User ساختم و از AbstractUser ارث بری کردم که فیلد های خودمو بهش اضافه کنم
مثلا age و …
یه فیلد داره کلاس AbstractUser به اسم is_staff که فک کنم مشخص میکنه کاربر میتونه به صفحه admin دسترسی داشته باشه یانه
من کلا میخوام اینو حذف کنم
چیزی که به ذهنم رسید اینه که تو کلاس فرزندی که خودم ایجاد کردم یکی از این دوتا رو بنویسم

is_staff = None

# or

super.is_staff = None

این درسته؟


#2

با سلام جنگو به صورت بیلدین سیستم auth خوبی داره و شما به ۴ صورت میتونید مدل رو extend کنید فکر میکنم لینک بتونه کمک کنه و در غیر این صورت میتونید سیستم auth خودتون رو بنویسید

مستندات کامل در مورد شخصی سازی auth

https://docs.djangoproject.com/en/2.0/topics/auth/customizing/


#3

این کارو برای چه دلیلی می‌خواین انجام بدین ؟


#4

سلام
من دقیقا از همون لینک اول پیش رفتم
الآن دارم کلاس AbstractUser خود جنگو رو extend میکنم که خودش ولیدیشن یوزرنیم و پسوورد و ایمیل رو انجام بده و من درگیر اونا نشم
ولی مشکل اینجاست یه سری چیزاش اضافست و من نمیخوامشون
مثلا شما سایت دیجی کالا رو فرض کن
هر یوزر یه record دیتابیس هست طبیعتا
بعد فرض کن یه ستون این باشه که آیا کاربر دسترسی admin داشته باشه یا نه؟
خوب طبیعتا هیچ یوزری نباید دسترسی ادمین داشته باشه و اصلا نیازی به این ستون نیست
حالا من میخوام همین ستون رو که در AbstractUser وجود داره بگم توی کلاس User من که AbstractUser رو extend کرده نمیخوام وجود داشته باشه


#5

شما می تونی تو جنگو کلاس یوزر خودت رو معرفی کنی تا جنگو از اون کلاس به عنوان یوزر استفاده کنه. توی تنظیماتت می تونی این کار رو انجام بدی.

اما دلیلی که می خوای بخاطرش این کار رو بکنی منطقی نیست


#6

سلام
آره خوب منطقی نیست که من از اول بیام همه فیلد ها و validation هایی که به بهترین نحو ممکن انجام شده رو از نو انجام بدم
برای همین تصمیم به extend کردن کلاس AbstractUser کردم
حالا الآن مشکل اینجاست که میتونم چیزای دیگه ای که میخوام رو بهش اضافه کنم
ولی نمیتونم چیزی رو ازش حذف کنم


#7

فکر می کنم این مقاله به کارتون بیاد