Django老问题:在模型中获取当前用户
问题描述:
首先,我很抱歉问这个问题,我是django的新用户。和我建立了我的项目只能由models.ModelDjango老问题:在模型中获取当前用户
##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默认的管理我的网站,我不使用自己的任何模板。现在,当用户登录并要创建任务时,我想要由当前用户将创建者设置为默认值。但我不知道如何获得模型中的当前用户。模型。 我从网络上查找了一些信息,例如http://chewpichai.blogspot.tw/2007/09/using-user-info-outside-request-in.html,但它无法工作。那么谁能告诉我在没有请求的情况下在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()
读到这里https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
我的答案是不正确的,我犯了一个错误读你的问题。抱歉。 –
如果可以,我会添加类属性始终应该以小写字母开头。按照惯例,首都是类名称。 –