我尝试了很多在django管理中查找当前用户ID的方法。我试过通过SessionKey和request.user(HTTPRequest)拉取用户ID无济于事。我最近的化身是:
def save(self, request, obj, form, change):
if getattr(obj, 'submitter', None) is None:
obj.submitter = request.user
obj.save()
super(AppAdmin, self).save()
在admin.py和
中submitter = models.ForeignKey(User, null=True, blank=True, related_name="submitter")
在models.py中。我在堆栈溢出的其他地方发现了这个,但它似乎不起作用。任何帮助表示赞赏。
谢谢!
答案 0 :(得分:8)
从您的代码段看起来,您试图将当前登录的用户保存到ModelAdmin
看起来你打算覆盖save_model
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
class AppAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.submitter = request.user # no need to check for it.
obj.save()