<分区>
我有以下内容:
from django.contrib.auth.models import User
class ClientDetails(models.Model):
created_by = models.ForeignKey(User)
...
如何让 created_by
默认为当前登录的用户?
(我想这样做是因为我可以将它隐藏在管理 View 中,主要是因为当我保存一个实例时我不想每次都填充它)
<分区>
我有以下内容:
from django.contrib.auth.models import User
class ClientDetails(models.Model):
created_by = models.ForeignKey(User)
...
如何让 created_by
默认为当前登录的用户?
(我想这样做是因为我可以将它隐藏在管理 View 中,主要是因为当我保存一个实例时我不想每次都填充它)
最佳答案
由于您需要从 request
对象获取当前登录的用户,您无法在模型的 save
方法中获取它,但您可以例如覆盖模型管理员的保存模型
-方法:
class MyAdmin(admin.ModelAdmin):
def save_model(self, request, instance, form, change):
user = request.user
instance = form.save(commit=False)
if not change or not instance.created_by:
instance.created_by = user
instance.modified_by = user
instance.save()
form.save_m2m()
return instance
关于python - 使模型中的用户默认为当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670783/