[英]Django old issue: Get current user in 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)
我為我的網站使用django的默認管理員,我不使用任何我自己的模板。 現在,當用戶登錄並要創建任務時,我想將當前用戶設置為默認創建者。 但我不知道如何在models.Model中獲取當前用戶。 我已經從網絡上查詢了一些信息,例如http://chewpichai.blogspot.tw/2007/09/using-user-info-outside-request-in.html ,但它無法正常工作。 那么誰可以告訴我在沒有請求的情況下在models.py文件中獲取當前用戶的方法。 它預先給了我很長時間,我真的希望有人可以幫助我。 謝謝
您需要覆蓋Admin Class中的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.