如何解决我可以获取在django中更新记录的管理员的姓名吗?
我是Django的新手,我正在尝试制作一个应用程序,但对此我一无所知。
我想获取更新记录并添加保存记录的管理员名称。有可能吗?
解决方法
您可以创建一个引用用户模型的ForeignKey
[Django-doc]字段,您可以使用is_staff=True
将选项限制为用户。例如:
from django.conf import settings
class MyModel(models.Model):
# …
editor = models.ForeignKey(
settings.AUTH_USER_MODEL,on_delete=models.CASCADE,editable=False,limit_choices_to={'is_staff': True}
)
然后在CreateView
或UpdateView
中,您可以将字段更改为登录用户。例如CreateView
:
from django.contrib.auth.mixins import LoginRequiredMixin,UserPassesTestMixin
from django.views.generic.edit import CreateView
class MyModelCreateView(UserPassesTestMixin,LoginRequiredMixin,CreateView):
# …
def test_func(self):
return self.request.user.is_staff # only staff can access the view
def form_valid(self,form):
form.instance.editor = request.user
return super().form_valid(form)
在ModelAdmin
的{{1}}中,您还可以附加已登录的用户:
MyModel
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。