• 1400/03/04

شخصی سازی مدل User در جنگو :

سلام

میخوام مدل جنگو User رو شخصی سازی کنم ولی چند تا مشکل و سوال پیش اومده؟

1-با توجه به موارد زیر و اینکه من میخوام تغیرات و فیلد های زیادی تو مدل User ایجاد کنم ، بهتره از کدوم کلاس ( AbstractUser یا AbstractBaseUser) ارث بری کنم؟

تفاوت AbstractUser با AbstractBaseUser

الف. اگر با فیلدهای موجود مدل کاربر پیشفرض جنگو مشکلی ندارید و فقط میخواهید از ایمیل به جای نام کاربری استفاده کنید از AbstractUser استفاده کنید.

ب. اگر کلا قصد تغییر مدل کاربر جنگو رو از پایه دارید و میخواهید یک مدل کاملا جدید بسازید از AbstractBaseUser استفاده کنید.

2-تو توضیحات دیدم تو فیلد ایمیل این (   _('email address'),  )مورد رو اضافه کرده که موقع migrate کردن به ارور میخوره و جای دیگه ای اینجوریش رو ندیدم!؟

email = models.EmailField(_('email address'), unique=True)

حدث خودم اینه که این مورد یجوری verbose_name نوشتن تو ورژن قدیمی جنگو هست چون تو توضیحات طرف دیدم که بعد از میگیریت زدن این پیام 'email address' به شکل زیر نمایش داده میشه؟!

 ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),

3-چجوری میتونم تایید کنم که USERNAME_FIELD یونیکم هم ایمیل باشه هم شماره موبایل طرف؟

  • 1400/03/04
  • ساعت 09:39

سلام دوست من

1 - برای تغییرات زیاد در مدل اصلی کاربر پیشنهاد میکنم از AbstractBaseUser استفاده کنین تا همه ی field ها رو خودتون مشخص کنین

2 - منظورتون رو متوجه نشدم ؟؟؟

3 - اتریبیوت unique رو به هر دو بدین


logo-samandehi