Reputation: 72
I have extended User
model. Model name is userextend
. I wanted to add two more field. Here is my userextend
model.
class userextend(models.Model):
user= models.OneToOneField(User, on_delete=models.CASCADE)
major = models.CharField(max_length=50)
student_id = models.CharField(max_length=20)
After user completed the registration, I want to run register
function from views.py
and want to save major and student_id on userextend model.
views.py:
def register(request):
form = CreateUserForm()
if request.method =='POST':
form = CreateUserForm(request.POST)
major = request.POST.get('major')
student_id = request.POST.get('student_id')
if form.is_valid():
b = userextend.objects.create(user=form,major=major,student_id=student_id) #I tried this
form.save()
context = {'form': form}
return render(request, 'library_site/register.html',context)
Upvotes: 1
Views: 497
Reputation: 1810
You have to save the user first, if there is no user you can't create the relationship:
def register(request):
...
if form.is_valid():
user = form.save()
b = userextend.objects.create(user=user, major=major, student_id=student_id)
...
Upvotes: 2