জ্যাঙ্গোতে কাস্টম ক্ষেত্রগুলি সহ ব্যবহারকারী মডেলকে প্রসারিত করা হচ্ছে


442

কাস্টম ক্ষেত্রগুলির সাথে ব্যবহারকারীর মডেলটি (জ্যাঙ্গোর প্রমাণীকরণ অ্যাপ্লিকেশন দিয়ে বান্ডিল করা) প্রসারিত করার সর্বোত্তম উপায় কী? আমি সম্ভবত ইমেলটি ব্যবহারকারীর নাম হিসাবে প্রমাণ করতে চাই (প্রমাণীকরণের উদ্দেশ্যে)।

এটি করার কয়েকটি উপায় আমি ইতিমধ্যে দেখেছি , তবে কোনটি সবচেয়ে ভাল তা সিদ্ধান্ত নিতে পারছি না।


24
বেশিরভাগ উত্তর পুরানো / অবমাননাকৃত। দয়া করে স্ট্যাকওভারফ্লো.com/a/22856042/781695 এবং স্ট্যাকওভারফ্লো.com/q/14104677/781695 এবং স্ট্যাকওভারফ্লো.com/q/16880461/781695
ব্যবহারকারী

@ বাফার - আপনি যে প্রথম প্রশ্নটির সাথে লিঙ্ক করেছেন (stackoverflow.com/a/22856042/781695) এখন মুছে ফেলা হয়েছে। অন্যরা এখনও বৈধ।
টনি

3
প্রমাণীকরণের জন্য ব্যবহারকারীর পরিবর্তে ইমেল ব্যবহার করতে, এই নিবন্ধটি দরকারী।


২০০৮ সালে জ্যাঙ্গো মুক্তি পাওয়ার আগে প্রশ্নটি জানতে পেরে আমি বেশ মুগ্ধ হয়েছি @ ফারিহা
টেসারাকটার

উত্তর:


253

এটি করার সর্বনিম্ন বেদনাদায়ক এবং সত্যই জ্যাঙ্গো-প্রস্তাবিত উপায় হ'ল OneToOneField(User)সম্পত্তি দ্বারা property

বিদ্যমান ব্যবহারকারী মডেলটি প্রসারিত করা হচ্ছে

...

আপনি যদি সম্পর্কিত সম্পর্কিত তথ্য সঞ্চয় করতে চান তবে অতিরিক্ত তথ্যের জন্য ক্ষেত্রগুলি ধারণ করে এমন একটি মডেলের সাথে একের সাথে সম্পর্কUser ব্যবহার করতে পারেন । এই ওয়ান-টু ওয়ান মডেলটিকে প্রায়শই একটি প্রোফাইল মডেল বলা হয়, কারণ এটি কোনও সাইটের ব্যবহারকারী সম্পর্কে অ-লেখক সম্পর্কিত তথ্য সঞ্চয় করতে পারে।

এটি বলেছে, এটি প্রসারিত django.contrib.auth.models.Userএবং দমন কাজও কাজ করে ...

একটি কাস্টম ব্যবহারকারী মডেল প্রতিস্থাপন

কিছু ধরণের প্রকল্পের প্রমাণীকরণের প্রয়োজনীয়তা থাকতে পারে যার জন্য জাঙ্গোর অন্তর্নির্মিত Userমডেলটি সর্বদা উপযুক্ত নয় not উদাহরণস্বরূপ, কিছু সাইটে এটি ব্যবহারকারীর পরিবর্তে আপনার পরিচয় টোকেন হিসাবে কোনও ইমেল ঠিকানা ব্যবহার করা আরও বোধগম্য।

[এড: দুটি সতর্কতা এবং একটি বিজ্ঞপ্তি অনুসরণ করে উল্লেখ করে যে এটি বেশ কঠোর ]

আমি অবশ্যই আপনার জ্যাঙ্গো উত্স ট্রিতে প্রকৃত ব্যবহারকারী শ্রেণিটি পরিবর্তন করা এবং / অথবা লিখিত মডিউলটি অনুলিপি করা ও পরিবর্তন করা থেকে দূরে থাকব।


51
এফওয়াইআই-র নতুন (1.0+) প্রস্তাবিত পদ্ধতিটি হ'ল ওয়ানটোওফিল্ড (ব্যবহারকারী) ডকস.ডজ্যাঙ্গোপ্রজেক্ট
ডেভ ফ্যাস্টাক

2
পিবিএস-এর শন রাইডার আপনাকে জ্যাঙ্গো.কন্ট্রিবি.আউথ.মোডেলস.উজার ব্যবহার না করার জন্য কিছু সত্য কারণ দিয়েছে। পরিবর্তে ওয়ানটোইনফিল্ড (ব্যবহারকারী) ব্যবহার করুন।
পাইদানি

2
user = models.ForeignKey(User, unique=True)এটি কি একইরকম user = models.OneToOneField(User)? আমি মনে করি শেষ প্রভাবটি কি একই রকম? তবে সম্ভবত ব্যাকএন্ডে বাস্তবায়ন আলাদা।
স্যাম স্টোলেঙ্গা

7
কেউ কি শন রাইডার্স যুক্তি / যুক্তির সাথে লিঙ্ক করতে পারে?
জেরেমি ব্লানচার্ড

1
জাঙ্গো 1.7 ডক্স হিসাবে ব্যবহারকারীর মডেলগুলি বাড়ানোর বিষয়ে কিছু অতিরিক্ত তথ্য এখানে রয়েছে
ডেরেক অ্যাডায়ার

226

দ্রষ্টব্য: এই উত্তরটি অবচিত করা হয়েছে। আপনি জ্যাঙ্গো ১.7 বা তার পরে ব্যবহার করছেন তবে অন্যান্য উত্তরগুলি দেখুন।

এইভাবেই আমি এটি করি।

#in models.py
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):  
    user = models.OneToOneField(User)  
    #other fields here

    def __str__(self):  
          return "%s's profile" % self.user  

def create_user_profile(sender, instance, created, **kwargs):  
    if created:  
       profile, created = UserProfile.objects.get_or_create(user=instance)  

post_save.connect(create_user_profile, sender=User) 

#in settings.py
AUTH_PROFILE_MODULE = 'YOURAPP.UserProfile'

এটি তৈরি করা হলে এটি প্রতি ব্যবহারকারীর সংরক্ষণের সময় ব্যবহারকারী ব্যবহার করবে। তারপরে আপনি ব্যবহার করতে পারেন

  user.get_profile().whatever

এখানে ডক্স থেকে আরও কিছু তথ্য দেওয়া হল

http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

আপডেট: দয়া করে নোট করুন যে AUTH_PROFILE_MODULEv1.5: https://docs.djangoproject.com/en/1.5/ref/settings/#auth-profile-module থেকে অবচয় করা হয়েছে


6
সুস্পষ্ট উদাহরণের জন্য ধন্যবাদ, নোট করুন যে ডিফ তৈরি করুন_উসার .... ইউজারপ্রাইফিল শ্রেণীর অংশ নয় এবং বামদিকে সারিবদ্ধ হওয়া উচিত।
ফোবিবি

5
এই সমাধানের সাহায্যে অন্য মডেলগুলির ব্যবহারকারীর বা ব্যবহারকারী প্রোফাইলে বিদেশী কী করা উচিত?
অ্যান্ড্রুঙ্ক

9
অন্যান্য মডেলগুলির ব্যবহার করা উচিত user = models.ForeignKey( User )এবং এর মাধ্যমে প্রোফাইল অবজেক্টটি পুনরুদ্ধার করা উচিত user.get_profile()। মনে আছে from django.contrib.admin.models import User
ক্রেগ ব্যবসায়ী

1
এই পদ্ধতিটি ব্যবহার করে, আমি যখন সাধারণ তথ্য (নাম, পাসওয়ার্ড) এবং কাস্টম একটি পুনরুদ্ধার করি তখন আলাদা করতে হবে বা এটি একবারে করার কোনও উপায় আছে? নতুন ব্যবহারকারী তৈরির জন্য একই?
মার্টিন ট্রাইগক্স

5
এই উত্তর এবং মন্তব্যগুলি পুরানো হয়ে গেছে যেমন AUTH_PROFILE_MODULE অবচয়,User
ব্যবহারকারী

196

ঠিক আছে, ২০০৮ সাল থেকে কিছু সময় কেটে গেছে এবং এটি নতুন কিছু উত্তরের জন্য সময় এসেছে। জ্যাঙ্গো 1.5 থেকে আপনি কাস্টম ব্যবহারকারী শ্রেণি তৈরি করতে সক্ষম হবেন। প্রকৃতপক্ষে, আমি এটি লেখার সময় এটি ইতিমধ্যে মাস্টারের সাথে মিশে গেছে, তাই আপনি এটি চেষ্টা করে দেখতে পারেন।

সেখানে এটা সম্পর্কে কিছু তথ্য আছে ডক্স অথবা যদি আপনি এটি গভীরে, চাই এই কমিট

আপনাকে যা করতে হবে তা হ'ল AUTH_USER_MODELকাস্টম ব্যবহারকারী শ্রেণীর পাথের সাথে সেটিংসে যুক্ত করা, যা প্রসারিত হয় AbstractBaseUser(আরও কাস্টমাইজযোগ্য সংস্করণ) বা AbstractUser(আরও বা কম বয়সী ব্যবহারকারী শ্রেণি আপনি প্রসারিত করতে পারেন)।

ক্লিক করতে অলস লোকদের জন্য, এখানে কোড উদাহরণ ( ডক্স থেকে নেওয়া ):

from django.db import models
from django.contrib.auth.models import (
    BaseUserManager, AbstractBaseUser
)


class MyUserManager(BaseUserManager):
    def create_user(self, email, date_of_birth, password=None):
        """
        Creates and saves a User with the given email, date of
        birth and password.
        """
        if not email:
            raise ValueError('Users must have an email address')

        user = self.model(
            email=MyUserManager.normalize_email(email),
            date_of_birth=date_of_birth,
        )

        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, username, date_of_birth, password):
        """
        Creates and saves a superuser with the given email, date of
        birth and password.
        """
        u = self.create_user(username,
                        password=password,
                        date_of_birth=date_of_birth
                    )
        u.is_admin = True
        u.save(using=self._db)
        return u


class MyUser(AbstractBaseUser):
    email = models.EmailField(
                        verbose_name='email address',
                        max_length=255,
                        unique=True,
                    )
    date_of_birth = models.DateField()
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    objects = MyUserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['date_of_birth']

    def get_full_name(self):
        # The user is identified by their email address
        return self.email

    def get_short_name(self):
        # The user is identified by their email address
        return self.email

    def __unicode__(self):
        return self.email

    def has_perm(self, perm, obj=None):
        "Does the user have a specific permission?"
        # Simplest possible answer: Yes, always
        return True

    def has_module_perms(self, app_label):
        "Does the user have permissions to view the app `app_label`?"
        # Simplest possible answer: Yes, always
        return True

    @property
    def is_staff(self):
        "Is the user a member of staff?"
        # Simplest possible answer: All admins are staff
        return self.is_admin

Create_user ফাংশনটি ব্যবহারকারীর নামটি সংরক্ষণ করবে বলে মনে হচ্ছে না, কীভাবে ?!
অরকা

6
কারণ এই উদাহরণে, emailব্যবহারকারীর নাম।
ওন্দ্রেজ স্লিনটেক

5
আপনি যোগ করতে হবে unique=Trueযাক ইমেল মাঠে USERNAME_FIELDতা গ্রহণ
রিচার্ড ডি বুদ্ধি

হাই, আমি যেমনটি বলেছিলাম তেমন কাস্টম ব্যবহারকারী তৈরি করার চেষ্টা করছি কিন্তু কাস্টম ব্যবহারকারীর ইমেলের ইমেল ব্যবহার করে লগইন করতে পারিনি। কেন আপনি বলার আপত্তি করবেন না?
লিওনেল

আমি আপনাকে নির্দিষ্ট করে ছাড়াই সত্যই সহায়তা করতে পারি না। আপনি যদি নতুন প্রশ্ন তৈরি করেন তবে এটি আরও ভাল।
ওন্দ্রেজ স্লিনট্যাক

47

জ্যাঙ্গো 1.5 থেকে আপনি সহজেই ব্যবহারকারীর মডেলটি প্রসারিত করতে পারেন এবং ডাটাবেসে একটি টেবিল রাখতে পারেন।

from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import ugettext_lazy as _

class UserProfile(AbstractUser):
    age = models.PositiveIntegerField(_("age"))

আপনার সেটিংস ফাইলে আপনার এটি অবশ্যই বর্তমান ব্যবহারকারী শ্রেণি হিসাবে কনফিগার করতে হবে

# supposing you put it in apps/profiles/models.py
AUTH_USER_MODEL = "profiles.UserProfile"

আপনি যদি ব্যবহারকারীর প্রচুর পছন্দ যুক্ত করতে চান তবে ওয়ানটিওফিল্ড বিকল্পটি আরও ভাল পছন্দের চিন্তাভাবনা হতে পারে।

তৃতীয় পক্ষের গ্রন্থাগারগুলি বিকাশকারী লোকদের জন্য একটি নোট: আপনার যদি ব্যবহারকারী শ্রেণীর অ্যাক্সেসের প্রয়োজন হয় তবে মনে রাখবেন লোকেরা এটি পরিবর্তন করতে পারে। সঠিক শ্রেণি পেতে অফিসিয়াল সহায়ককে ব্যবহার করুন

from django.contrib.auth import get_user_model

User = get_user_model()

3
আপনি যদি ব্যবহার করার পরিকল্পনা করেন তবে django_social_authআমি OneToOne সম্পর্ক ব্যবহার করার পরামর্শ দিচ্ছি। এই পদ্ধতিটি ব্যবহার করবেন না বা এটি আপনার স্থানান্তরগুলিকে বিশৃঙ্খলা করবে।
নিমো

@ নিমো: আপনি কি কোনও রেফারেন্স বিশদভাবে বা উদ্ধৃত করতে
পারবেন

@ বাফার, এটি অনেক আগে ছিল, তবে আমি মনে করি আমি django_social_authপ্লাগইনটি একত্রিত করে সামাজিক লেখক ব্যবহারকারীকে AUTH_USER_MODEL সংজ্ঞায়নের চেষ্টা করেছি । তারপরে, আমি যখন পরিচালিত.পি মাইগ্রেট চালিয়েছি তখন এটি আমার অ্যাপ্লিকেশনকে বিশৃঙ্খলা করে। পরিবর্তে আমি এখানে সামাজিক বর্ণনাকারীর ব্যবহারকারীর মডেলটিকে OneToOne সম্পর্কের হিসাবে বর্ণনা করেছি: stackoverflow.com/q/10638293/977116
নিমো

3
সম্ভবত Changing this setting after you have tables created is not supported by makemigrations and will result in you having to manually write a set of migrations to fix your schemaউত্স: docs.djangoproject.com/en/dev/topics/auth/customizing/…
ব্যবহারকারী

43

ব্যবহারকারীদের সম্পর্কে অতিরিক্ত তথ্য সংরক্ষণ করার বিষয়ে একটি অফিসিয়াল সুপারিশ রয়েছে । জাজানো বইটি বিভাগ প্রোফাইলগুলির মধ্যেও এই সমস্যাটি নিয়ে আলোচনা করেছে ।


23

নীচে একটি ব্যবহারকারীর প্রসারিত করার জন্য অন্য পদ্ধতি। আমি মনে করি এটি আরও সুস্পষ্ট, সহজ, পঠনযোগ্য তবে দুটি পদ্ধতির উপরে।

http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

উপরোক্ত পদ্ধতির ব্যবহার:

  1. ব্যবহারকারীর সাথে সম্পর্কিত অতিরিক্ত তথ্য অ্যাক্সেস করার জন্য আপনার ইউজার.জেট_প্রোফাইল ()। newattribute ব্যবহার করার দরকার নেই
  2. আপনি কেবল নতুন ব্যবহারকারীর মাধ্যমে নতুন নতুন বৈশিষ্ট্যগুলিতে সরাসরি অ্যাক্সেস করতে পারেন w

1
আমি সরাসরি মডেল বন্ধ না করে ব্যবহারকারীর বস্তুর উত্তরাধিকারের ভিত্তিতে স্কটের পদ্ধতির চেয়ে অনেক বেশি পছন্দ করি। এই পদ্ধতির বুদ্ধিমান না হলে কেউ কি বলতে পারবেন?
BozoJoe

1
: - @BozoJoe আমি শুধু এই সমস্যা ডাম্প তথ্য ইম্পোর্ট, যা এই পদ্ধতি ব্যবহার করে একটি ফল উপস্থিত হতে পারে গাড়ীতে আঘাত stackoverflow.com/questions/8840068/...
বেন Regenspan

15

জ্যাঙ্গো পোস্ট সেভ সিগন্যাল ব্যবহার করে যখন কোনও ব্যবহারকারী তৈরি করা হয় তখন আপনি প্রতিটি সময় নতুন এন্ট্রি তৈরি করে কেবল ব্যবহারকারী প্রোফাইল প্রসারিত করতে পারেন

models.py

from django.db.models.signals import *
from __future__ import unicode_literals

class UserProfile(models.Model):

    user_name = models.OneToOneField(User, related_name='profile')
    city = models.CharField(max_length=100, null=True)

    def __unicode__(self):  # __str__
        return unicode(self.user_name)

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        userProfile.objects.create(user_name=instance)

post_save.connect(create_user_profile, sender=User)

নতুন ব্যবহারকারী তৈরি হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে কোনও কর্মচারী উদাহরণ তৈরি করবে।

আপনি যদি ব্যবহারকারী মডেলটি প্রসারিত করতে চান এবং কোনও ব্যবহারকারী তৈরি করার সময় আপনি আরও তথ্য যুক্ত করতে চান তবে আপনি জ্যাঙ্গো-বেটারফর্ম ( http://django-betterforms.readthedocs.io/en/latest/m মাল্টিফর্ম html ) ব্যবহার করতে পারেন । এটি ব্যবহারকারীর প্রোফাইলে মডেলটিতে সংজ্ঞাযুক্ত সমস্ত ক্ষেত্র সহ একটি ব্যবহারকারী অ্যাড ফর্ম তৈরি করবে।

models.py

from django.db.models.signals import *
from __future__ import unicode_literals

class UserProfile(models.Model):

    user_name = models.OneToOneField(User)
    city = models.CharField(max_length=100)

    def __unicode__(self):  # __str__
        return unicode(self.user_name)

forms.py

from django import forms
from django.forms import ModelForm
from betterforms.multiform import MultiModelForm
from django.contrib.auth.forms import UserCreationForm
from .models import *

class ProfileForm(ModelForm):

    class Meta:
        model = Employee
        exclude = ('user_name',)


class addUserMultiForm(MultiModelForm):
    form_classes = {
        'user':UserCreationForm,
        'profile':ProfileForm,
    }

views.py

from django.shortcuts import redirect
from .models import *
from .forms import *
from django.views.generic import CreateView

class AddUser(CreateView):
    form_class = AddUserMultiForm
    template_name = "add-user.html"
    success_url = '/your-url-after-user-created'

    def form_valid(self, form):
        user = form['user'].save()
        profile = form['profile'].save(commit=False)
        profile.user_name = User.objects.get(username= user.username)
        profile.save()
        return redirect(self.success_url)

addUser.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="." method="post">
            {% csrf_token %}
            {{ form }}     
            <button type="submit">Add</button>
        </form>
     </body>
</html>

urls.py

from django.conf.urls import url, include
from appName.views import *
urlpatterns = [
    url(r'^add-user/$', AddUser.as_view(), name='add-user'),
]

হাই এবং এই উত্তরের জন্য ধন্যবাদ। আমি এখনও url.py.. কোনও ইঙ্গিতগুলিতে কীভাবে এগুলিকে সংযুক্ত করতে পারি তা বুঝতে লড়াই করছি?
সাল

@ সল যুক্ত ইউআরএলগুলির উদাহরণ আপনি এখন যাচাই করতে পারেন
অতুল যাদব

ধন্যবাদ !!। এটা আমাকে অনেক সাহায্য করেছে. ভাল উদাহরণ
সানি চৌধারি

@ অতুল্যবাদ .. আপনি যে জ্যাঙ্গো ব্যবহার করেছেন তার সংস্করণটি কী?
রিডো

8

প্রো এর মতো জ্যাঙ্গো ইউজার মডেল (ইউজারপ্রোফাইল) প্রসারিত করা

আমি এটি খুব দরকারী খুঁজে পেয়েছি: লিঙ্ক

একটি নিষ্কাশন:

django.contrib.auth.models থেকে ব্যবহারকারী আমদানি করে

class Employee(models.Model):
    user = models.OneToOneField(User)
    department = models.CharField(max_length=100)

>>> u = User.objects.get(username='fsmith')
>>> freds_department = u.employee.department

2
সম্পন্ন. কেন আমি -1 বুঝতে পারি না। এই ক্ষেত্রে ডাউনটোটের চেয়ে একটি সম্পাদনা ভাল Bet
ম্যাসিমো ভারিওলো

3

জ্যাঙ্গো 1.5 তে নতুন, এখন আপনি নিজের কাস্টম ব্যবহারকারী মডেল তৈরি করতে পারেন (যা উপরের ক্ষেত্রে করা ভাল মনে হয়)। পড়ুন 'জ্যাঙ্গো মধ্যে কাস্টমাইজ প্রমাণীকরণ'

সম্ভবত 1.5 রিলিজে দুর্দান্ততম বৈশিষ্ট্য।


1
হ্যাঁ, সত্যিই। তবে সাবধান হোন যে প্রয়োজন ছাড়া এটি এড়ানো উচিত। এই প্রশ্নের কারণে আপনার নিজের বাস্তবায়ন পুরোপুরি বৈধ যদিও আপনি যদি নথিভুক্ত ফলাফলের সাথে স্বাচ্ছন্দ্য বোধ করেন। কেবল ক্ষেত্রগুলি যুক্ত করার জন্য নিয়মিত ব্যবহারকারীর মডেলটির সাথে সম্পর্কের প্রস্তাব দেওয়া হয়
gertvdijk

2

এটি আমিই করি এবং এটি করা আমার মতামত। আপনার নতুন কাস্টমাইজড মডেলের জন্য কোনও অবজেক্ট ম্যানেজারকে সংজ্ঞায়িত করুন তারপরে আপনার মডেলটি সংজ্ঞায়িত করুন।

from django.db import models
from django.contrib.auth.models import PermissionsMixin, AbstractBaseUser, BaseUserManager

class User_manager(BaseUserManager):
    def create_user(self, username, email, gender, nickname, password):
        email = self.normalize_email(email)
        user = self.model(username=username, email=email, gender=gender, nickname=nickname)
        user.set_password(password)
        user.save(using=self.db)
        return user

    def create_superuser(self, username, email, gender, password, nickname=None):
        user = self.create_user(username=username, email=email, gender=gender, nickname=nickname, password=password)
        user.is_superuser = True
        user.is_staff = True
        user.save()
        return user



  class User(PermissionsMixin, AbstractBaseUser):
    username = models.CharField(max_length=32, unique=True, )
    email = models.EmailField(max_length=32)
    gender_choices = [("M", "Male"), ("F", "Female"), ("O", "Others")]
    gender = models.CharField(choices=gender_choices, default="M", max_length=1)
    nickname = models.CharField(max_length=32, blank=True, null=True)

    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    REQUIRED_FIELDS = ["email", "gender"]
    USERNAME_FIELD = "username"
    objects = User_manager()

    def __str__(self):
        return self.username

আপনার কোডের এই লাইনটি যুক্ত করতে ভুলবেন না settings.py:

AUTH_USER_MODEL = 'YourApp.User'

এটি আমিই করি এবং এটি সর্বদা কার্যকর হয়।


0

বর্তমানে জ্যাঙ্গো ২.২ অনুসারে, নতুন প্রকল্প শুরু করার সময় প্রস্তাবিত উপায় হ'ল অ্যাবস্ট্রাকচারের কাছ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত একটি কাস্টম ব্যবহারকারী মডেল তৈরি করা, তারপরে মডেলটিতে AUTH_USER_MODEL নির্দেশ করুন।

উত্স: https://docs.djangoproject.com/en/2.2/topics/auth/customizing/# using- a-custom- user- model- wn- starting- a- project


0

সহজ এবং কার্যকর পন্থা মডেল.পি

from django.contrib.auth.models import User
class CustomUser(User):
     profile_pic = models.ImageField(upload_to='...')
     other_field = models.CharField()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.