جواب کوتاه:
با همون User پیشفرض شروع کن. برای پروژهی بعدیت برو سمت User سفارشی.
🟢 چه زمانی از User پیشفرض استفاده کنیم؟
- وقتی یک پروژه جدید رو شروع میکنی
- وقتی همون حالت عادی username/email/password برات کافیه
- وقتی داری پروتوتایپ میسازی
- وقتی میتونی با یه Profile مدل اضافی امکانات بیشتر اضافه کنی
🔵 چه زمانی User سفارشی لازم داریم؟
- وقتی میخوای ورود فقط با ایمیل باشه (بدون username)
- وقتی فیلدهای کاربر خیلی متفاوتن
- وقتی از همون اول پروژه این تصمیم رو گرفتی (بعداً تغییر دادنش سخت میشه)
اگر الان داری از User پیشفرض استفاده میکنی:
# توسعه User با OneToOne Profile
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField()
avatar = models.ImageField()
phone = models.CharField(max_length=20)
# دسترسی
user.profile.bio
این روش ۹۰٪ مواقع کافیه و دردسرهای Custom User رو هم نداره.
اگر از صفر داری شروع میکنی و User سفارشی میخوای:
# User سفارشی با ورود ایمیلی
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name']
settings.py :AUTH_USER_MODEL = 'core.User'
قانون من:
اگر شک داری، اصلاً سمت User سفارشی نرو. همون User پیشفرض + مدل Profile بهترین انتخابه.
پ.ن: یادتون نره پستا رو با دوستاتون به اشتراک بذارید ❤️❤️
پارت اول ۲۰ سوال جنگو
پارت دوم ۲۰ سوال جنگو
پارت سوم ۲۰ سوال جنگو
پارت چهارم ۲۰ سوال جنگو
پارت پنجم ۲۰ سوال جنگو
پارت ششم ۲۰ سوال جنگو
پارت هفتم ۲۰ سوال جنگو
پارت هشتم ۲۰ سوال جنگو
#پارت_نهم #جنگو #django #پایتون #برنامه_نویسی
@PhiloLearn