Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型中的request.user_Python_Django_Django Models - Fatal编程技术网

Python Django模型中的request.user

Python Django模型中的request.user,python,django,django-models,Python,Django,Django Models,我正在使用Django模型为表单创建字段。我想有用户的用户名自动检测和填写,这样我可以隐藏在我的形式(而不是让他们选择他们的用户名从一个长长的名单,每个人的用户名)。为此,我正在使用: current_user = request.user 然后将默认值设置为当前用户。然而,我不断地发现这个错误: NameError: name 'request' is not defined 我假设您不能在Django模型中使用请求,但有没有办法解决这个问题?以下是my models.py文件的相关部分:

我正在使用Django模型为表单创建字段。我想有用户的用户名自动检测和填写,这样我可以隐藏在我的形式(而不是让他们选择他们的用户名从一个长长的名单,每个人的用户名)。为此,我正在使用:

current_user = request.user
然后将默认值设置为当前用户。然而,我不断地发现这个错误:

NameError: name 'request' is not defined
我假设您不能在Django模型中使用请求,但有没有办法解决这个问题?以下是my models.py文件的相关部分:

class StockTickerSymbol(models.Model):
    StockName = models.CharField(max_length=7, unique=True)
    current_user = request.user
    user = models.ForeignKey(User, default=current_user)

有人知道我如何在模型中使用请求,或者以某种方式调用变量current\u user吗?

这里您没有在该模型类范围中导入请求。这是您获取用户信息的方式:

# model

class 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)
对于模型形式:

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()
在以下观点中:

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

相关或重复:。除非以某种方式传递给Python,否则在Python中的任何地方都不能使用任何内容。好的,我已将
def save
位添加到my models.py,但我不完全确定在何处添加视图代码。是我的相关views.py文件。代码到底会放在哪里?非常有用,感谢您需要设置
消息的请求。。尽管也许我应该在
post\u save
中这样做。。。