Reputation: 1
So i am trying to fill in a model variable in from by default. I need the current logged in username in master_id = #here#
i am not able to use request.
Please help.
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
from django.db import transaction
from django.contrib.auth import get_user_model
from .models import User, Shop
class ShopRegister(UserCreationForm):
first_name = forms.CharField(required = True)
last_name = forms.CharField(required = True)
firm = forms.CharField(required = True)
email = forms.CharField(required = True)
contact = forms.CharField(required = True)
details = forms.CharField(required = True)
lid = forms.CharField(required = True)
master_id = #need my username here##############
class Meta(UserCreationForm.Meta):
model = User
@transaction.atomic
def save(self):
user = super().save(commit=False)
user.employee = True
user.first_name = self.cleaned_data.get('first_name')
user.last_name = self.cleaned_data.get('last_name')
user.firm = self.cleaned_data.get('firm')
user.email = self.cleaned_data.get('email')
user.contact = self.cleaned_data.get('contact')
user.details = self.cleaned_data.get('details')
user.lid = self.cleaned_data.get('lid')
user.save()
shop = Shop.objects.create(user=user)
shop.master_id=self.cleaned_data.get('master_id')
shop.save()
return user
Upvotes: 0
Views: 56
Reputation: 190
You can bind the variable you created the form in the views.py file as form.master_id = request.user
. I don't know if there is another way to do this.
Upvotes: 1