python - Django Model Admin:如何使用当前用户自动分配和隐藏 created_by 字段并在保存后显示?
问题描述
我正在使用某些模型会计,其中包含以下模型属性。
class Accounting(model.Model):
booking = models.OneToOneField(Booking, on_delete=models.PROTECT, null=True)
description = models.CharField(max_length=100, validators=[])
created_by = models.ForeignKey(User, on_delete=models.PROTECT)
bus_company = models.ForeignKey(BusCompany, models.PROTECT)
在 admin.py 中我到目前为止所做的
@admin.register(Accounting)
class AccountingAdmin(ModelAdmin):
list_display =(
'bus_company',
'description ',
'bus_company ',
)
现在,当我使用 Django 管理员添加Accounting
. 我想隐藏created_by
并想将当前登录的用户设置为created_by
. 目前superuser
在添加数据后是这样 created_by 字段也得到更新并显示我该怎么做?
解决方案
要隐藏归档,请将 editable 设置为 False
created_by = models.Model(editable=False)
现在,还要将 blank=True 添加到 created_by 并覆盖 save 方法:
created_by = models.Model(blank=True,null=True,editable=False)
def save(self,user,*args,**kwargs):
user = user
super().save(*args,**kwargs)
现在在保存此对象时:
def view_name(request):
user = request.user
atributes = {'booking':'blabl','description':'blablablab'
,'bus_company':'blab blab'}
account = Account(**atributes)
account.save(user=user)
推荐阅读
- tcp - sk_data_ready 回调无法获取片段数据
- nginx - 使用 Nginx 模块 ngx_http_keyval_module
- php - mysql sum() 不工作。我该如何解决?
- php - 从 php 向 webservice 发送 xml 请求
- google-bigquery - 在命令行中更新 biq 查询中的表数据
- python - Python时间分析每个语句作为参数的函数
- android - 通过意图发送超链接
- python - 没有节点与其子节点具有相同的颜色 - 递归
- scorm - SCORM清单:选择性跟踪/完成?
- javascript - 从 Javascript for Wordpress 调用 PHP 函数