Creating a Custom User Model (Django)

Поделиться
HTML-код
  • Опубликовано: 25 окт 2024

Комментарии • 143

  • @josemadarieta865
    @josemadarieta865 4 года назад +46

    well done. first recent vid that was clear enough to understand while stoned. subscribed

    • @Rob-cq1nf
      @Rob-cq1nf 4 года назад +1

      thanks, than i watch this

  • @abilashk3193
    @abilashk3193 3 года назад

    If anyone wanna learn how Custom User model works. Then this is the best video. **Subscribed

  • @AjaySharma-jv6qn
    @AjaySharma-jv6qn 4 года назад +5

    Your voice is so clear in respect to other videos, you are doing good work, keep posting, Good luck from India🙂

  • @bsmaheshkumar5328
    @bsmaheshkumar5328 3 года назад

    You are the best RUclipsr where we can get all things about Django. Thanks a ton buddy.

  • @Speedstackingboy251
    @Speedstackingboy251 4 года назад +3

    I was on the verge of giving up the project because I don't know how to do this until I saw this and I checked. The explanation is so clear. Thank you for this you earned a sub and a fan

    • @uln5354
      @uln5354 2 года назад

      Hey Marky ) Tomorrow's my deadline - here am I! Partially ready (lol). He just gave me hope and I could do it all within a few hours) Dennis, and there was another android guy, taught me a lot.

  • @fabrizioalmeida8435
    @fabrizioalmeida8435 5 лет назад +6

    tks man, i falow all videos since i find your channel, great leasons tks for all.

  • @TECHINSPEC
    @TECHINSPEC 3 года назад +1

    The best Django tutorials all Over the Internet. Thank you, Sir

  • @aaqidmasoodi
    @aaqidmasoodi 3 года назад

    I am a fan of this channel!! thanks to Dennis Ivy for introducing me to this channel.

  • @SammyMsafiri
    @SammyMsafiri 2 месяца назад

    I love your videos. Good job.

  • @jamikemichelohia2615
    @jamikemichelohia2615 4 года назад

    thanks to you i can make custom user, i was asked to do in my freelance and i was used to usercreaton form. insta subscribed

  • @DhineshDk
    @DhineshDk 4 года назад

    You are trying to add the field 'date_joined' with 'auto_now_add=True' to account without a default; the database needs something to populate existing rows.

  • @fforfun8931
    @fforfun8931 4 года назад

    thank you so much brother i was in search of this kind of video.it really put a lot of value to my life thankyou so much.subscribed

  • @wilez493
    @wilez493 4 года назад +1

    Great job. But bro what about the debug part? you can't skip it like that. how do we correct the code? we need that ginger taste part. Thanks and keep it up!!

  • @whoisntwhoisit2126
    @whoisntwhoisit2126 4 года назад +1

    Did I miss the part where you dealt with these? Cause mine wont even load server - 3 issues 0 silenced.
    : (admin.E019) The value of 'filter_horizontal[0]' refers to 'groups', which is not an attribute of 'website.User'.
    : (admin.E019) The value of 'filter_horizontal[1]' refers to 'user_permissions', which is not an attribute of 'website.User'.
    : (admin.E116) The value of 'list_filter[3]' refers to 'groups', which does not refer to a Field.
    Switching to AbstractUser instead of Base seemed to fix it - does that just bring the rest of the previous user model, anything that was not altered, into this user model? Thanks!

  • @sahiltrivedi69
    @sahiltrivedi69 4 года назад

    Bro you are a legend RESPECT

  • @pruthvihingu3733
    @pruthvihingu3733 4 года назад +3

    shows an error
    django.core.exceptions.FieldDoesNotExist: Account has no field named 'user_email'

  • @joelmiranda5808
    @joelmiranda5808 3 года назад

    great tutorial for beginners

  • @giovanniramospedrozo1494
    @giovanniramospedrozo1494 2 года назад

    Hello, can I customize the width of a CharField or ArrayField for example?

  • @prettycode4028
    @prettycode4028 4 года назад

    Your explaining so good! Good luck from Ukraine

  • @kelvinmuriithi
    @kelvinmuriithi 4 года назад

    Thank you Mitch. This was so helpful

  • @FMINSIGHTS
    @FMINSIGHTS 5 лет назад

    Fantastic Explanation. Waiting for more videos.

  • @rodiihernandez146
    @rodiihernandez146 3 года назад

    Niceeee!! hello from Chile.

  • @olayemii
    @olayemii 5 лет назад +8

    Hi Mitch, I followed the tutorial, but some how my Add User view still shows just Username, Password and no email. What am i doing wrong please?

    • @AdrianGonzalezBlogs
      @AdrianGonzalezBlogs 4 года назад +2

      Has anybody been able to solve this?

    • @AdrianGonzalezBlogs
      @AdrianGonzalezBlogs 4 года назад +5

      Update: I was able to solve this by adding this on admin.py inside the AccountAdmin class.
      fieldsets = (
      (None, {'fields': ('email', 'password', 'username')}),
      ('Permissions', {'fields': ('is_admin', 'is_staff')}),
      )
      add_fieldsets = (
      (None, {
      'classes': ('wide',),
      'fields': ('email', 'username', 'password1', 'password2'),
      }),
      )
      the reference code is from the django docs: docs.djangoproject.com/en/3.0/topics/auth/customizing/#a-full-example

    • @aliazlanaziz
      @aliazlanaziz 4 года назад

      @@AdrianGonzalezBlogs thanks

    • @rezaulislamtanim6445
      @rezaulislamtanim6445 4 года назад

      @@AdrianGonzalezBlogs bro what change did you made with fieldsets? i dont understand

    • @AdrianGonzalezBlogs
      @AdrianGonzalezBlogs 4 года назад

      @@rezaulislamtanim6445 what exactly you don't understand?

  • @infinitx1330
    @infinitx1330 3 года назад

    This was something I really wanted thanks

  • @leonxx9790
    @leonxx9790 4 года назад

    Amazing tutorial!! Great job!

  • @fedotov_aa
    @fedotov_aa 2 года назад

    thank u so much for ur videos!!!

  • @DenzelHooke
    @DenzelHooke 3 года назад

    How does the user variable defined in our create_superuser have access to the Account class

  • @faisalsalam33
    @faisalsalam33 3 года назад

    Thank you so much for this video...

  • @Birlank
    @Birlank 2 года назад

    So when I go to create a superuser in the cmd screen, it asks for the email/password but then says failed to provide a username. However, it does not prompt for a user name and followed the steps. Any suggestions?

  • @henrycodingstack6952
    @henrycodingstack6952 5 лет назад +1

    Can you add a relationship field from this user model to another existing model. like for example a bank app .when user who can register with the app must have a bank account with d bank so in that case before signup user must have an already existing acct.so we have Account model and a User model so can a OnetoOneField be in this User model with that Account model ?

  • @RSurya99
    @RSurya99 3 года назад

    i got an error
    when i login to myweb/admin
    it says "not enough values to unpack (expected 4, got 3)"

  • @siddharth1278
    @siddharth1278 4 года назад

    Great Video! very helpful. Thanks

  • @definty
    @definty 4 года назад

    When creating the create_user() method VSCode does not like them opening if statements. It was 'Prettier - Code Formatter' extension that was causing the issues.

  • @omparikh4426
    @omparikh4426 4 года назад +11

    why user = self.model() in manager?
    why using=self.__db while saving?
    why you added password=password for create_superuser but used set_password for create_user(), what's the difference and when to use which?

    • @lalanet1362
      @lalanet1362 3 года назад +3

      Great questions, I had exactly the same doubts when watching the video.
      1. MyAccountManager inherits from BaseUserManager, which itself inherits from models.Manager class. That Manager class has reference to the model it manages stored in self.model, in our case the model is: class 'Account'. So self.model(email=email, username=username) is same as writing Account(email=email, username=username).
      2. 'using' parameter specifies in which database to save given instance. This is useful if you have multiple databases and you need to define which database you need for this operation. self._db is None, so when it becomes user.save(using=None), per Django implementation it will use the 'default' database defined in setting.py. If you want to use another database, pass the name of your database like user.save(using='my_database').
      3. When you need to set a password for the user, you should be using set_password method as it hashes the password which is important. As it was mentioned in the video (14:34), he should have called self.create_user(...) instead of self.model inside create_superuser. When you call self.create_user, it takes three arguments: email, username, password. Now when the method gets executed, it will normally set a password with set_password method like you would expect.

  • @rickerp
    @rickerp 4 года назад

    Hey Mitch!
    In 12:33 , couldn't you just use `blank=False` when declaring the field, then it would raise automaticly an exception if it was blank

  • @pypro
    @pypro 5 лет назад +3

    Bro, could you explain how to create custom groups??

  • @CaptainStudioOfficial
    @CaptainStudioOfficial 3 года назад

    Thanks a lot. This is really helpful

  • @rajendrakumar1195
    @rajendrakumar1195 2 года назад

    i have followed the same step and code but after admin login i got the is error " 'Account' object has no attribute 'get_all_permissions' ". how to solve please help me.

  • @alexissuarezalvarez5622
    @alexissuarezalvarez5622 3 года назад

    hi, what's the use of using the is_staff functions with the @property decorator?

  • @piyushgupta9051
    @piyushgupta9051 4 года назад

    hello mitch
    which database are you using because u have used self._db to save the user, i am using mysql database it is creating an error....please reply

  • @hiteshprajapati603
    @hiteshprajapati603 3 года назад

    i am getting programmig error while running django admin page account account relation does not exist
    what to do

  • @talhashakil8245
    @talhashakil8245 4 года назад

    Well done. Thank you soo much

  • @shirlimotro2375
    @shirlimotro2375 4 года назад

    hey, I am working with mysql data base.
    in the tutorial I see the base_account table was created and contains the columns that we added in the video. how do I fill this table with the data from the registration form ?
    in my project the table that this info is filled in is the auth_user table
    thanks !!

  • @alvarobencosme5348
    @alvarobencosme5348 4 года назад

    How customize the admin panel to show permissions and groups in this custom user? thanks!!!

  • @kishanpatel3354
    @kishanpatel3354 4 года назад

    While creating superuser I do not have a username field appearing on the cmd line.

  • @rishabhsidana7063
    @rishabhsidana7063 4 года назад

    helped me a lot

  • @maheshbisht2967
    @maheshbisht2967 4 года назад

    nailed it sir

  • @architverma1805
    @architverma1805 3 года назад

    thanks a lot man

  • @mhammad50
    @mhammad50 4 года назад

    thank you I want to add something Instead of implementing the permission methods you could extend PermissionsMixin
    like this class UserProfile(AbstractBaseUser, PermissionsMixin):

    • @dikshantghimire6037
      @dikshantghimire6037 4 года назад +2

      @@harshilpatel8525 just add class Account(AbstractBaseUser, PermissionsMixin) and that's it. It will handle all the permissions stuff.

  • @infinitx1330
    @infinitx1330 3 года назад

    Is it possible to have multiple custom user authentication methods for different users within the same Django app. Like an email and password for one type of user and a pin only for another type of user

  • @diagknowstech
    @diagknowstech 4 года назад

    how about if i want toi create a user which is a staff

  • @EnmanuelMenjivarCortez
    @EnmanuelMenjivarCortez 3 года назад

    Thank you a lot, you helped me so much

  • @r.f886
    @r.f886 2 года назад

    Thank you very much for the great tutorial But i have a little error in Cmd :
    ImportError: cannot import name 'BaseUserManger' from 'django.contrib.auth.models' (D:\Django Projects\.........

  • @devmrnecro4215
    @devmrnecro4215 3 года назад

    Can anybody elaborate to share the link of the next that he had talked about in the video for adding more things like hashed password and etc....

  • @90daner
    @90daner 3 года назад

    where is the second part sir ??

  • @frankandbrendabarrett39
    @frankandbrendabarrett39 4 года назад +1

    Hey Mitch, Great tutorial I am getting the following error when I try to create a superuser at the command line.
    TypeError: create_superuser() missing 1 required positional argument: 'username'
    Have I missed something, I have checked the code and cannot find the problem.

    • @rahulpatel4701
      @rahulpatel4701 4 года назад

      same error

    • @rahulpatel4701
      @rahulpatel4701 4 года назад +7

      make sure it is 'REQUIRED_FIELDS' in my case it was REQUIRED_FIELD so I was getting an error
      hope this help you

    • @zigtech5799
      @zigtech5799 4 года назад

      Username is what you missing

  • @sidalimahmoudi9386
    @sidalimahmoudi9386 3 года назад

    Thank you, when I create a super user it does not be added to account table, why ? Same when I create a simple user

    • @meddoubiha5921
      @meddoubiha5921 3 года назад

      same problem
      did u find a solution ??

  • @fataraz7287
    @fataraz7287 3 года назад +2

    Please enter the correct username and password for a staff account. Note that both fields may be case-sensitive.

  • @priteshjoshi9738
    @priteshjoshi9738 4 года назад +1

    shows an error 'Account' object has no attribute 'USERNAME_FIELD'

  • @abdullah01015
    @abdullah01015 2 года назад

    Heyy, it throws this error at the cmd " TypeError: create_superuser() missing 1 required positional argument: 'username' "

    • @abdullah01015
      @abdullah01015 2 года назад

      The error in my case was that I typed REQUIRED_FIELD instead of REQUIRED_FIELDS.
      A missing S can Screw up everything!

  • @yassinsoltani2725
    @yassinsoltani2725 4 года назад +1

    i can't login django administration after creating a super user why please ? i checked it and it's created but i can't login

    • @levyrasesemola5904
      @levyrasesemola5904 4 года назад

      how did you fix it?

    • @levyrasesemola5904
      @levyrasesemola5904 4 года назад

      @@timetosleep8055 thank you

    • @ΑσημίναΑ
      @ΑσημίναΑ 3 года назад

      Hello folks! Notice that you need the superuser's email and not the superuser's name to log in. That was my mistake, hadn't noticed.

  • @georgesmith3022
    @georgesmith3022 5 лет назад +1

    excellent!

  • @datawithheansell
    @datawithheansell 3 года назад

    Thank you for all.

  • @magzumkalybek2758
    @magzumkalybek2758 4 года назад

    Thank you, dude!

  • @classicguy7813
    @classicguy7813 4 года назад

    how to add a department field. We know those fields are already base

  • @motlatsimoea5615
    @motlatsimoea5615 4 года назад +1

    I followed the steps here and created this user model. Difference is that I am not using email in the USERNAME_FIELD. Email is not even required for my model. Second, I have more fields that are required such as first and last name and address.
    My problem is that when I try to create a superuser, it does not give me the other required fields. instead I get a 'TyperError' telling me that 3 positional arguments are missing. Help anyone.....:-(

    • @ryanjayantonio8892
      @ryanjayantonio8892 Год назад

      are you already solved this problem? can you explain how you solved it ? 🥲

  • @trippy_b
    @trippy_b 3 года назад

    great video!
    subd!

  • @looploop6612
    @looploop6612 4 года назад

    why not inheritate from User model ?

  • @g4merlin
    @g4merlin 3 года назад

    18:45 "TypeError: create_superuser() missing 1 required positional argument: 'username'" i dont know ive checked again all the steps ive reproduced and cant find the error.-
    i stop here for now tyvm

  • @shleshaodhekar175
    @shleshaodhekar175 4 года назад

    hey, can i do this on already created templates

  • @KevinTempelx
    @KevinTempelx 4 года назад

    Thanks!

  • @BboThe123
    @BboThe123 4 года назад

    Why in function create_user parameter password=None?

  • @orkhangasanov
    @orkhangasanov 4 года назад

    Huge thanks!

  • @deepgojariya4272
    @deepgojariya4272 4 года назад

    After creating superuser I am unable to login please helppp

  • @sahajrajmalla
    @sahajrajmalla 4 года назад

    what's the difference between custom made user model and django built-in User model sir?

    • @main_py5853
      @main_py5853 4 года назад +1

      Basically the built in User model is very simple and doesn't have a lot of functionality out of the box. So we make the custom User model to extend the built-in User model

  • @yasssh7835
    @yasssh7835 4 года назад

    Hi, can't we just make a new model with OnetoOne relationship with the User model and add additional fields are per requirement?

  • @TheTruth-a5
    @TheTruth-a5 4 года назад

    Legend!!!

  • @عبداللهالمالكي-ص1ك
    @عبداللهالمالكي-ص1ك 4 года назад

    thank you soooooo much

  • @pamelapricesoullinedancing9369
    @pamelapricesoullinedancing9369 4 года назад

    Curious, why is password not included as a field in the Account model?

    • @user-qv7rw7dq1d
      @user-qv7rw7dq1d 4 года назад

      Basically this; why isn't password included?

    • @whoisntwhoisit2126
      @whoisntwhoisit2126 4 года назад

      @@user-qv7rw7dq1d How I understand it, password is a forced requirement already. Just like the "USERNAME_FIELD" is not included, its already "pre-included".

  • @aimranedr6491
    @aimranedr6491 3 года назад

    man , I can't understand why i am getting this error :
    i did literally like you but when i write in cmd "python mange.py createsuperuser" it shows an AttributeError : 'Manager' object has no attribute 'get_by_natural_key'

    • @KyrenDinh
      @KyrenDinh Год назад

      This is because the account class isn't using the account manager correctly.
      Try this:
      objects=MyAccountManager()
      the empty parenthesis needs to be their at the end of the manager name. I forgot to add () and I got the same error as you

  • @ikhsanrahman9703
    @ikhsanrahman9703 4 года назад

    where is password stored? because i didn't see password defined in custom user model

  • @saiyansuper8020
    @saiyansuper8020 3 года назад

    I created a superuser successfully but cannot login to the admin. It says please enter the correct email and password for the staff account.

  • @JJ-ot3ps
    @JJ-ot3ps 2 года назад

    hey Mitch, great video, as a python newbie, I am wondering what does this line of code means: objects = MyAccountManager(), what is object refering to? what does this line mean? thanks!!!

  • @enricospina5201
    @enricospina5201 3 года назад

    can someone please give the source code with pastebin or something like that?

  • @Xiler6969
    @Xiler6969 4 года назад

    Link the documentation page you are using dude.

  • @AhmedTheCoder
    @AhmedTheCoder 4 года назад

    thanks

  • @sunnysandhu8922
    @sunnysandhu8922 2 года назад

    AttributeError: 'Manager' object has no attribute 'get_by_natural_key'

    • @KyrenDinh
      @KyrenDinh Год назад

      Try this:
      objects=MyAccountManager()
      the empty parenthesis needs to be their at the end of the manager name. I forgot to add () and I got the same error as you

  • @whoisntwhoisit2126
    @whoisntwhoisit2126 4 года назад

    I really wish tab and space were the same damn thing, if tab just put 4 spaces it would solve this happening with several other programs too. I was taught specifically to NEVER use tab with python, always use spaces instead, no idea why. To bad not a true standard on something like that. If only one of them didn't work so the other would be used normally, o well what can you do...

  • @MiRaje8086
    @MiRaje8086 3 года назад

    thanks for the vid but dam all that white space bothered me so much lol

  • @vvk8698
    @vvk8698 3 года назад

    Hi bro I need source code can u pls send for me

  • @ritapravadutta7939
    @ritapravadutta7939 4 года назад

    Github link?

  • @hectorviov
    @hectorviov 3 года назад

    Why do you sound like the guy from Casually Explained channel?

  • @nishantrao5600
    @nishantrao5600 4 года назад

    Self reference @ 15:50

  • @sameergaikwad222
    @sameergaikwad222 4 года назад +1

    moment you pick username in fields of a Model. You lost meaning of entire Custom User model interest. Sorry :)

  • @brahimdevlober3579
    @brahimdevlober3579 4 года назад

    File "C:\Users\black-worm\Desktop\mysite\account\models.py", line 14
    user=self.model(
    ^
    IndentationError: unindent does not match any outer indentation level
    where is the mistake i don't knows

  • @tonikroos6895
    @tonikroos6895 2 года назад

    im getting an error like: You don’t have permission to view or edit anything.

  • @ThePassportPapi
    @ThePassportPapi 4 года назад

    If I want to force a user to upload a photo during registration, do I need to use a custom user model? Or is it possible to do that via extending the user model?

    • @kalenzo78
      @kalenzo78 4 года назад

      Validate the registration via front end using JavaScript and add an add event listener on submit button

  • @jessejoseph2643
    @jessejoseph2643 4 года назад

    Why the fuck does he leave that much space when creating fields?

  • @priyanksingh6818
    @priyanksingh6818 5 лет назад

    Bro, still waiting(from past 1month) for next video

    • @codingwithmitch
      @codingwithmitch  5 лет назад

      They've all been published for months codingwithmitch.com/courses/building-a-website-django-python/

  • @hdskbi
    @hdskbi 4 года назад +1

    After creating everything like You, I have no permissions to view anything in /admin/

    • @titoolivares2161
      @titoolivares2161 4 года назад

      pip install django-admin-view-permission
      after that, include the following line on INSTALLED_APPS
      INSTALLED_APPS = [
      'admin_view_permission',
      'django.contrib.admin',
      ...
      ]