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

Django admin-将所有字段设为只读

凌炜
2023-03-14
问题内容

我试图使所有字段为只读,而不明确列出它们。

就像是:

class CustomAdmin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        if request.user.is_superuser:
            return self.readonly_fields

        return self.fields  

目前CustomAdmin.fields尚未设置问题。


问题答案:

小心,self.model._meta.fields不一定与CustomAdmin具有相同的字段!

“管理员的所有字段”看起来像这样:

from django.contrib import admin
from django.contrib.admin.utils import flatten_fieldsets

class CustomAdmin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        if request.user.is_superuser:
            return self.readonly_fields

        if self.declared_fieldsets:
            return flatten_fieldsets(self.declared_fieldsets)
        else:
            return list(set(
                [field.name for field in self.opts.local_fields] +
                [field.name for field in self.opts.local_many_to_many]
            ))


 类似资料:
  • 问题内容: 我知道通过应用boolean属性将输入元素设为只读,并且该属性不受CSS的影响。 另一方面,我的情况似乎非常适合CSS,因此我希望可以使用某种CSS技巧来实现。我的表格上有 可打印的版本 超链接。单击它会显示文档的可打印版本。它主要是CSS东西,我的print.css看起来像这样: 还有一些javascript片段,例如: 将类添加到html元素 显示没有滚动条的表 其他一些小事情,例

  • 只读字段用来保护某些特殊的字段值不被更改,这个字段的值一旦写入,就无法更改。 要使用只读字段的功能,我们只需要在模型中定义readonly属性: <?php namespace app\index\model; use think\Model; class User extends Model { protected $readonly = ['name', 'email']; } 例

  • 问题内容: 如何在SQL表中将所有0值都设置为NULL? 提前致谢。 问题答案:

  • 我用spring boot starter创建了一个基本的graphql java应用程序,并在使用Hibernate和Jpa的MSSQL数据库上使用graphql spqr库。 我有一个名为“任务”的实体,有5个字段。我有一个简单的Jpa存储库和一个调用“findAllTasks”方法的简单Jpa服务。它工作得很好,但是如果我指定(例如)使用graphiql只查询一个字段,我可以通过SQL日志看

  • 我正在工作的非Spring靴项目。 对于spring boot,您可以使用以下属性: 如果我能在没有Spring的情况下设置这样的属性,那就太好了。

  • 问题内容: 用户声明: 模式声明: UserPatternDeclaration: 请求数据库: 我得到以下异常: 请帮助解决此问题。 错误消息看起来非常非常奇怪。 我已阅读相关主题的点击,但未找到答案。 ps hibernate日志(异常之前): 在浏览器中,我看到以下消息: 问题答案: 如果将HQL查询更改为会怎样? 我认为Hibernate混淆了对象和ID字段。