python - 从 django admin 创建对象时如何将当前登录的用户附加到对象
问题描述
我正在开发一个网站,其应用程序的类名为Members
,其字段与内置用户类相关,django.contrib.auth.models
看起来像
class Members(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
member_image = models.ImageField(upload_to='unknown')
member_position = models.CharField(max_length=255)
...
因此,正如您所看到的,当我添加member_image
为用户时,我还必须选择对我没有意义的用户,因为我想检测哪个用户已登录并将他/她的 id 作为默认参数传递,例如
class Members(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, default=request.user.id)
并在管理面板中删除用户字段后
class MembersAdmin(admin.ModelAdmin):
fields = ('member_image', 'member_position', ...)
这样如果未选择用户字段,它将默认设置登录的 user_id
但要出入request
是views.py
不可能的。
那么我将如何实现这一点我也尝试了以下答案
但仍然没有得到它
解决方案
在保存之前修改 MembersAdminsave_model
方法并将 request.user 附加到对象。
class MembersAdmin(admin.ModelAdmin):
fields = ('member_image', 'member_position', ...)
def save_model(self, request, obj, form, change):
obj.user = request.user
super().save_model(request, obj, form, change)
推荐阅读
- r - 如何运行具有交互作用的线性假设?
- r - 如何解决“错误:无法从服务器接收数据” - r 中的数据库连接?
- java - 为什么带有嵌入式 H2 的 Spring Boot 会抛出“org.h2.message.DbException”错误?
- java - Java - 使用 getClass().getResource() 的文件路径总是返回 null
- php - 我对php真的很陌生,我必须为我的学校作业写一个简单的联系表格。但我输入的数据不会显示在结果中
- java - Java Period.between 显示奇怪的输出
- java - 在 JPA 解决方法中使用 registerFunction
- python - KivyMD MDNavigationRail,按图标
- node.js - 尝试使用 LRO 运行云函数
- reactjs - 调试反应第三方依赖