jim*_*wan 2 python django model
首先,我很抱歉提出这个问题,我是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)
Run Code Online (Sandbox Code Playgroud)
我使用django的默认管理员为我的网站,我不使用任何自己的模板.现在,当用户登录并要创建任务时,我想要由当前用户设置创建者默认值.但我不知道如何在models.Model中获取当前用户.我从网络中查找了一些信息,例如http://chewpichai.blogspot.tw/2007/09/using-user-info-outside-request-in.html,但它无法正常工作.那么谁可以告诉我在没有请求的情况下在models.py文件中获取当前用户的方法.它预先给了我很长时间,我真的希望有人可以帮助我.谢谢
You need to override the save_model in the Admin 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()
Run Code Online (Sandbox Code Playgroud)
read about it here https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |