Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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旧问题:获取模型中的当前用户_Python_Django_Model - Fatal编程技术网

Python Django旧问题:获取模型中的当前用户

Python Django旧问题:获取模型中的当前用户,python,django,model,Python,Django,Model,首先我很抱歉问这个问题,我是django的新用户。我只通过模型来建立我的项目 ##models.py class Task(models.Model): Name = models.CharField('Title', max_length=200) Notes = models.TextField('Description',max_length=2000, null=True) Creator = models.ForeignKe

首先我很抱歉问这个问题,我是django的新用户。我只通过模型来建立我的项目

   ##models.py
    class Task(models.Model):
        Name = models.CharField('Title', max_length=200)
        Notes = models.TextField('Description',max_length=2000, null=True)
        Creator = models.ForeignKey(User, related_name='TaskCreator', null=True, blank=True)
        def __unicode__(self):
            return self.Name

   ##admin.py
   class TaskAdmin(admin.ModelAdmin):
          list_display = ['Name', 'Owner','EstEndTime','LastModifiedTime','Statu']

   admin.site.register(Task,TaskAdmin)
我使用django的默认管理员来管理我的站点,我不使用任何我自己的模板。现在,当用户登录并准备创建任务时,我想将创建者设置为当前用户的默认值。但是我不知道如何获取models.Model中的当前用户。 我已经从网络上查到了一些信息,如,但它无法工作。那么谁能告诉我在没有请求的情况下在models.py文件中获取当前用户的方法呢。
这让我困惑了很久,我真的希望有人能帮助我。谢谢

您需要覆盖Admin类中的
save_model

   class TaskAdmin(admin.ModelAdmin):
          list_display = ['Name', 'Owner','EstEndTime','LastModifiedTime','Statu']


          def save_model(self, request, task, form, change):
              task.Creator = request.user
              task.save()

在这里读一下

我的答案不正确,我读错了你的问题。抱歉。如果可以的话,我想补充一点,类属性应该总是以小写字符开头。根据惯例,大写代表类名。谢谢你的回复,你能回答更多细节吗?因为我是新的。def save_model(self,request,obj,form,change):obj.user=request.user obj.save()在这个函数中,我如何设置Task.Creator?现在我有另一个问题,我希望任务模型通过fefault过滤器显示,不是通过点击在modelAdmin中设置的过滤器选项,比如:class TaskAdmin(admin.modelAdmin):list_display=['Name','Owner','EstEndTime','LastModifiedTime','Statu']search_fields=['Name']list_filter=('Statu','Project',DecadeByOwer@jimwan我不明白,但如果是另一个问题,开始一个新问题,而不是我们在评论中谈论:)@YadenST,好的,这是这个问题的链接。在这个问题上,我成功地按model.Manager进行筛选,但我只能按某个用户而不是当前用户进行筛选。你能告诉我如何改进它,使任务对象项不显示所有任务,而是显示当前用户的任务吗。