当前位置: 首页 > 面试题库 >

Django管理模型字段设置为当前用户

袁骏祥
2023-03-14
问题内容

我有一个领域模型:

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    created_by = models.ForeignKeyField(User)

在我的管理员中:

class MyModelAdmin(admin.ModelAdmin):
    list_display= ("name",)
    fields = ("name",)

在这里,我不想created_by在添加MyModel时在管理员中使用。我希望将其设置为当前用户,例如created_by = request.user

我怎样才能做到这一点?

谢谢


问题答案:

您已经设置fields好了,因此它created_by不会以Django管理员的形式出现。

现在,您需要覆盖save_model,并在保存新对象之前设置用户。

class MyModelAdmin(admin.ModelAdmin):
    fields = ("name",)

    def save_model(self, request, obj, form, change):
        if not change:
            # the object is being created, so set the user
            obj.created_by = request.user
        obj.save()


 类似资料:
  • 问题内容: 我正在尝试使用默认的Django admin创建一个简单的照片库。我想为每个画廊保存一张样本照片,但我不想保留filname。除了文件名,我想保存模型的ID()。但是,第一次我要保存该对象时,该ID不存在。我如何知道模型中的下一个自动增量,或者以某种方式保存模型数据(在存在文件时上传之前和之后)?有没有很酷的解决方案? 像这样: 也许将文件名存储在其他字段中。 问题答案: 图像文件将在

  • 本文向大家介绍django 模型字段设置默认值代码,包括了django 模型字段设置默认值代码的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 补充知识:django 设置默认值到SQL 环境:django 1.9.7 背景介绍 django migrate 生成表结构时,默认是不处理default(即字段的default 是在django 框架层面,没有到数据库

  • 问题内容: 如何使用Django的ORM和PostgreSQL后端存储二进制数据的“ blob”?是的,我知道Django对这种事情不屑一顾,是的,我知道他们更喜欢你使用ImageField或FileField来表示,但这足以说明我的应用程序不切实际。 我曾尝试通过使用TextField对其进行破解,但是当我的二进制数据未严格确认模型的编码类型(默认为unicode)时,会出现偶尔的错误。例如 问

  • 问题内容: 我正在开发一个多租户应用程序,其中一些用户可以定义自己的数据字段(通过管理员)以收集表单中的其他数据并报告数据。后一点使得JSONField不是一个很好的选择,所以我有以下解决方案: 请注意,CustomDataField如何具有Site的ForeignKey-每个Site将具有一组不同的自定义数据字段,但是使用相同的数据库。然后可以将各种具体的数据字段定义为: 这导致以下用途: 但这

  • 问题内容: 即使在模型中将字段标记为,我仍希望在管理页面上显示它。目前,它完全隐藏了该领域。如何实现? 问题答案: 使用只读字段。像这样(对于django> = 1.2):

  • 问题内容: 我有一个像这样的模型: 我想迁移并同时托管这两个主机是主键。 问题答案: 我将以稍微不同的方式来实现。 我将使用默认的主键(自动字段),并使用meta class属性, 它将充当“代理”主键列。 如果您确实要创建多列主键,请查看此应用