request.user in Django model request.user in Django model django django

request.user in Django model


Here you haven't imported request in that model class scope. This is how you can get user:

# modelclass StockTickerSymbol(models.Model):    StockName = models.CharField(max_length=7, unique=True)    user = models.ForeignKey(User)    def save(self,**kwargs):      if kwargs.has_key('request') and self.user is None:            request = kwargs.pop('request')            self.user= request.user      super(StockTickerSymbol, self).save(**kwargs)#views:def post(self, request):   if form.is_valid():                                sts=StockTickerSymbol()       sts.StockName= form.cleaned_data['StockName']       if form.cleaned_data['user'] is None: #null check          sts.save(request=request)       else:          sts.user= form.cleaned_data['user']          sts.save(request=request)

For modelform:

class SomeForm(forms.ModelForm):    ...    def save(self, commit=True ,*args, **kwargs):        request = None        if kwargs.has_key('request'):            request = kwargs.pop('request')        m = super(SomeForm, self).save(commit=False, *args, **kwargs)        if m.user is None and request is not None:            m.user= request.user            m.save()

in views:

def post(self, request):   if form.is_valid():        form.save(request=request)      return ...