2

首先我很抱歉问这个问题,我是 django 的新用户。我只通过models.Model设置我的项目

   ##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 中获取当前用户。我从网络上查了一些资料,比如http://chewpichai.blogspot.tw/2007/09/using-user-info-outside-request-in.html,但是不能用。那么谁能告诉我在没有请求的情况下在models.py文件中获取当前用户的方法。它困扰了我很长时间,我真的希望有人可以帮助我。谢谢

4

1 回答 1

7

您需要覆盖save_modelAdmin Class 中的 。

   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()

在这里阅读https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

于 2012-11-28T14:06:10.603 回答