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

django管理员在修改obj时将字段设为只读,但在添加新obj时则要求

夏侯林
2023-03-14
问题内容

在管理员中,我想在修改对象时禁用字段,但是在添加新对象时将其设为必填字段。

django如何处理这个问题?


问题答案:

你可以覆盖管理员的get_readonly_fields方法:

class MyModelAdmin(admin.ModelAdmin):

    def get_readonly_fields(self, request, obj=None):
        if obj: # editing an existing object
            return self.readonly_fields + ('field1', 'field2')
        return self.readonly_fields


 类似资料:
  • 内存管理是任何编程语言中最重要的过程之一。 它是在需要时分配对象的内存并在不再需要时取消分配的过程。 管理对象内存是一个性能问题; 如果应用程序不释放不需要的对象,则其内存占用增加并且性能受损。 Objective-C内存管理技术大致可分为两类。 “手动保留 - 释放”或MRR “自动参考计数”或ARC “手动保留 - 释放”或MRR 在MRR中,我们通过跟踪自己的对象来明确管理内存。 这是使用一

  • 如果属性不是,则任务是使用值覆盖任何属性值。如果您关心,这背后的业务逻辑是一个APIendpoint,它修改,并将作为参数(但可以更改所有或任何属性,因此我们不希望用null覆盖有效的旧值)。解决这个问题的方法是这样的。 我被告知这是多余的(我同意)。解决方案伪代码如下所示: 当然,这不是JavaScript,所以没那么容易。我的反射解决方案在下面,但imo,有冗余比在这里做反射更好。我有什么其他

  • 问题内容: 我试图使所有字段为只读,而不明确列出它们。 就像是: 目前尚未设置问题。 问题答案: 小心,不一定与CustomAdmin具有相同的字段! “管理员的所有字段”看起来像这样:

  • 问题内容: 我在admin.py中有一个带有以下类的django应用程序: 我想将这些文件用于添加页面,但将不同的字段用于更改页面。我怎样才能做到这一点? 问题答案: 首先看一下ModelAdmin类的源代码和位于中的方法。您可以覆盖这些方法,并使用kwargs获得所需的行为。例如:

  • 我认为Integer(引用obj指向的)被解压缩为int,然后强制转换为byte,然后被压缩为byte并成功赋值。Eclipse编译器警告还说(稍微纠正一下): 类型Object的表达式解压缩为字节 类型byte的表达式被装箱为byte 那么为什么它不能将RHS中的这个字节分配到LHS中的字节引用中呢? 如果,则工作,但失败。失败,但没问题!也许在这些相互的差异中有一些线索? 从经验上看,我会说,

  • 问题内容: 我的老板说我应该使用,因为它比更好,但是他不记得为什么这样做。有什么理由要使用吗? 我以某种方式感觉到…相反! 在Google上进行搜索后,我发现的唯一结果是: 在C语言中,它可以防止您意外地在条件结构中键入(obj = null)。 问题答案: 您不能通过输入来意外分配给它。但是,这是C时代的回忆,在Java中是不可能的,因为表达式返回赋值的右侧。由于不是,编译器会抱怨。 我会尽力向