Rupava Baruah
Rupava Baruah

Reputation: 1

How to get username in a variable forms.py Django

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

Answers (1)

xxxecute
xxxecute

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

Related Questions