Extend Your Django User Framework With a One To One Field
ฝัง
- เผยแพร่เมื่อ 23 ส.ค. 2024
- Sometimes you want your user model to have more than just an email and a password, so one way to extend the user model is by using a one to one field. In this video, I'll show you how to use it in Django.
Need one-on-one help with your project? I can help through my coaching program. Learn more here: prettyprinted....
Join my free course on working with the database and models in Django: prettyprinted....
Twitter: / pretty_printed
Github: github.com/pre...
Join my free course on working with the database and models in Django: prettyprinted.com/djangodatabase
Hi Anthony, I want to personally say thank you for your videos. I wish I could hit the subscribe button twice. If you ever got patreon. I will make sure to join.
Thank you so much dude. Your video was the end of a 14 hour slogfest through docs and other videos that didn't work out. Thank you so much. Keep up the good work.
I'm glad i could help! Thanks for watching.
Thank you, I have been struggling with this for 6 hours for my final Milestone Project.
+1
I've been struggling for 2 days trying to add a user_img. It works but when using the usercreationform it doesn't give me the error
started watching this... ended up calling into work:) Awesome video!
Finally I have found the complete tutorial. Thanks man.
Omg, I was looking for the same thing from long time and i was checking your django playlist and noticed that you uploaded this one week ago.
Thanks a lot for this tutorial.
You're welcome! Thanks for watching.
We're currently building a django project in the coding bootcamp I'm in, and I was looking to extend the user in just this way! Found a lot of other resources and documentation that tried to explain how exactly I should implement the OneToOne field, but you explained everything super concisely! Really awesome tutorial! Instant sub :D
I'm glad the video helped! Thanks for watching.
Very helpful video .. I couldn't search the solution for showing the one to one model fields info anywhere .. but u got my back.. Thanks Sir .. for your amazing work .. keep uploading new content to help us with our work
I'm glad my video could help you. Thanks for watching.
i was looking for a good tutorial which does what its says and finally I found peace!!!
,thank you!!
OMG! You saved my smol life. I got f****ed for straight 3 days and couldn't extend the default user model. THANK YOU SO MUCH!
What I was exactly looking for.
You are good man...
Keep it up and thanks.
You just earned a subscriber.
Finally I found what i'm looking for for 2 days , thank u so much 💜
Great. Thank you. I am busy with python on these days and you are one of the best channel.
Thank you for your clear and straightforward explanation. It would've been a whole day for me to understand the documentation xD
Thanks man it solved my problem
I was too looking for extending fields beside existing user model offered by django.
Thank you so much dude, from Russia:)
You deserve million subscribers
This was clear and to the point. Just perfect
Thanks! This was really helpful!
This is EXACTLY what I was looking for. Thank you!
Great Content !! Thanks for helping
Thanks you bro well done
This helped me allot, I am really thankful ♥️🙏
I'm glad it did. Thanks for watching!
It's good solution, but there is problem if you need follow sequence fields.
For example you need place default django's field then your custom field then default field again.
Do you know solution of descirbed problem?
How to edit profile page by user ?
This was awesome. Quick question, what if i wanted to add the other information related to the user like the location and age after they have registered and logged in to the app.
Finally found the correct tutorial which i was looking for. Thanks man 👍
How did you get user.user_profile.location at 10:45 ? Where did "user_profile" come from?
finally after 2 hours, thank u
You're welcome!
Great! I was looking for it from long time.
Thank you very much!
Thank you for the video! This is what I want to make. But, I have an error when I summit the registration page. The error is UNIQUE constraint failed: userprofile_profile.user_id. Is there any way to solve this error? Thank you
how did you solve it?
Any help on authenticating users login request using email & username? Not just username.
Hi! How we can get an access to this custom fields if we need edit userprofile? Thanks
I must buy that course. Am sure it will fast track my Django learning process.
Hope to see you in the course!
just awesome. Thank you so much boss.
I was trying to build a project .. i did extend default user model.. i was successful but once i login user from form.. and open admin panel it wil logout the superuser from there.. what i want is the user i created doesnot affect the super user. Plz help me..
Can we have done this with our custom form instead of
extending UserCreationForm???
19/6/2022 perrfect course
how can I implement multiple user types and redirect them different pages on login? I can't find it please help :(:(:((:
same i looking for
Looking for same did you find out
@@techyguys4394 Hi. I tried using flags. There was 2 types of users in my project. It works, redirects different pages. But honestly, its not efficient enough I think. You can find the code here 👉 github.com/tahademirer/Hospital-Appointment-System
join() argument must be str, bytes, or os.PathLike object, not 'dict'
how to solve this
thanks brother!
Thanks !
How to add a field of a model to another model.please you tell me the code for it
Thank you so so very much!
u r truly amazing
Hey i have done exact same as u did:
But i have this problem every time i follow it.
form error: {'password_mismatch': 'The two password fields didn’t match.'}
thanks man
Well just cuious can it be done using one form
Thank you man😁 finally I got it🙏
What if we want multiple user to register...for example in a job portal webapp candidate and partner signup and login or in school management webapp student and teacher signup login
how we do that.. could you please help..I am struggling in this for two week..😭😭😭 please Help
Wow this is great, thanks! This is similar to signals right?
In some articles, when extending user model using one-to-one field, I saw they also implemented post_save signals. You didn't seem to implement that. Is it really needed? what's the purpose of it, if may I know please?
Hi Prit, because of certain requirement I had to extend the User model using AbstractBaseClass, and not using one-to-one field.
Btw this video demonstrated on how to extend user model using one-to-one only with whole code too, didn't you find it helpful? No issues.
There are mainly four ways to extend Django User model.
1. Proxy Model
2. One-to-One field
3. AbstractUser
4. AbstractBaseUser
There is an old but amazing article which helped me a lot to grasp this overall topic, which I'm mentioning it below.
simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html
If you want a code then here I found a repo for you, which is just a basic django app demonstrating how to extend user model using one-to-one field.
github.com/ankurbelbase/django-Extend-User-Model
Hope it helps.
I can't access the one to one relationship model using user.model_name.column name 😔😔
Genius
thank you so much for this video, is there source code of this video in your Github? because I couldn't find it, it would be really good if you share the source code in your git
def __str__(self):
return self.user.username
is not working for me. What can I do?
How to create serializers and views for this. Please tell me i need this
what if I want first_name & last_name fields also in new model ?
Hi Anthony, Could you please make video on 'Web Notifications' using Flask.? Thank you in advance
I'll see what I can do. Thanks for the idea.
correct me if i'm wrong, isn't it discouraged to user "User". I think i read somewhere to use "settings.AUTH_USER_MODEL" instead?
Yes, if you plan on extending the model further or want more flexibility, you can use that instead, but the idea here will be similar.
Excellent...Thanks
You're welcome! Thanks for watching.
How can I redirect to different pages based on user_type(customer,employee)?
same question . did you found any solution?
How to make it so the default user field is the currently authenticated user, Becoz my extended model will be lectures conducted by teacher.... Which he must add whenever he needs it
hi thanks for your nice work .
I have problem to save data on db, my register page is always refreshing when i click on submit button
Something should happen when the submit button is clicked. You may have to redirect to some other page after the registration is complete.
@@prettyprinted Now it work, the problem was the name of the ''ExtendedUserCreationForm'' who i changed before
nice tutorial. can you share the codes for this video?
super! thanks!
You're welcome!
Thanks
A have a question,so i made oneToOneField,with 3 new field(gold,ruby,power) how can i put default value without admin panel editing (i want get 3 defaul value for my 3 new field
immediately after registration) (i speak london xD)
btw, this is a game, i need set default stat to a new user, help please(
When you create your class, you can add defaults. stackoverflow.com/questions/755857/default-value-for-field-in-django-model
does anybody where is the video before this, like how he created username, email etc.
There is no any video before this. This video itself demonstrates the complete tutorial.
From 1:41 to 2:05. Here he extended the 'User' model which comes built-in with Django. This 'User' model comes with the necessary fields required for authentication like email, username, and password and also all the validation stuff is handled by django, which is the beauty of django!
Thanksss!!!
You're welcome!
This is not worked for me!
hi there i have question:
i have three types of users with different form fields. should i need to create three profiles ? like i have sellers and clients and adminstrations . and how to verify user while login whether its seller or client?
here is my user profiles.:
class SellerProfile(models.Model):
user = models.OneToOneField(
User, blank=True, null=True, on_delete=models.SET_DEFAULT, default=None)
# password = models.CharField(max_length=50, default=1)
mobileNo = models.CharField(max_length=40, default=None)
cnic = models.CharField(max_length=30, default=None)
city = models.CharField(max_length=30, default=None)
address = models.CharField(max_length=30, default=None)
state = models.CharField(max_length=30, default=None)
shop_name = models.CharField(max_length=30, default=None)
def __str__(self):
return self.user.username
class ClientProfile(models.Model):
user = models.OneToOneField(User, models.SET_DEFAULT, default=None)
def __str__(self):
return self.user.username
here is my registration view:
def registration(request):
if request.method == 'POST':
form = UserForm(request.POST)
sellerFrom = SellerFrom(request.POST)
if form.is_valid() and sellerFrom.is_valid():
user = form.save()
seller = sellerFrom.save()
seller.user = user
seller.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
# user = authentication(username=username, password=password)
# login(request, user)
messages.success(request, 'account was created for' + username)
form = UserForm()
sellerFrom = SellerFrom()
return redirect('login')
else:
form = UserForm()
sellerFrom = SellerFrom()
context = {'form': form, 'sellerForm': sellerFrom}
return render(request, 'gui/signup.html', context)
and here is my login view :
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
auth_login(request, user)
return redirect('home')
else:
messages.info(request, 'Username or password is incorrect')
context = {}
return render(request, 'gui/login.html', context)
Hi, Thank you for this tutorial. When i submit the form i am getting this error. Could you please help. I have
{% csrf_token %} in my page
Forbidden (403)
CSRF verification failed. Request aborted.
Help
Reason given for failure:
CSRF token missing or incorrect.
In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:
Your browser is accepting cookies.
The view function passes a request to the template's render method.
In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login.
You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.
You can customize this page using the CSRF_FAILURE_VIEW setting.
You are a héro
Thanks for watching!
Finally I have found the complete tutorial. Thanks man.