الگوی Profile model

تا حالا به این مشکل برخوردید که توی پروژه‌تون دو نوع کاربر دارید؟ مثلاً «خریدار» و «فروشنده»؟

خریدار فقط نام و ایمیل داره، اما فروشنده کلی اطلاعات اضافه مثل «نام فروشگاه»، «آدرس» و «شماره صنفی» هم داره.

اینجا چند تا راه به ذهن میاد:

راه حل بد: همه‌ی فیلدها رو توی یک مدل User بریزیم (که برای خریدارها کلی فیلد NULL و خالی ایجاد می‌کنه و مدل رو شلوغ می‌کنه).

راه حل پیچیده: برای هر کدوم یک مدل User جدا بسازیم(که مدیریت احراز هویت و دسترسی‌هارو سختش می کنه)

الگوی پروفایل (Profile Model Pattern)

یک مدل User مرکزی داشته باشید: این مدل فقط مسئول اطلاعات مشترک و احراز هویته (نام کاربری، ایمیل، پسورد و ...)

یک مدل Profile جدا بسازید: برای اطلاعات اضافی، یک مدل جدید (مثلا SellerProfile) بسازید و تمام فیلدهای مخصوص فروشنده رو داخل اون قرار بدید.

با OneToOneField وصلشون کنید: این دو مدل رو با یک رابطه یک-به-یک به هم متصل کنید.