当前位置: 首页 > 知识库问答 >
问题:

如何在django admin中创建“仅创建”不可编辑字段

闻人宝
2023-03-14

我正在寻找一些关于使用模型在django admin上创建一个“仅创建”字段的解决方案。我以前看到过一些问题,但没有人能回答核心问题:当用户在管理面板上创建时,字段应该出现,但我不希望能够编辑。

models.py

class Fonte(Always):
    source_slug = models.CharField(max_length=255)

admin.py

@admin.register(Fonte)
class FonteAdmin(admin.ModelAdmin):
     readonly_fields = ['source_slug']

“readonly_fields”解决了以后编辑时的问题,但在创建时却导致了禁止。

问题:我使用这个字段来做一个散列,我不想再做这个改变…我曾想过使用第二个字段,在创建中的可编辑的one字段之上生成哈希,之后该字段将“死”,但在我看来,这似乎与规范化的2种方式相反。还有更优雅的方式吗?

共有1个答案

慕金林
2023-03-14

在管理类中重写get_readonly_fields,如下所示:

def get_readonly_fields(self, request, obj=None):
    if not obj:
        return ['source_slug'] 
    return []
 类似资料:
  • 了解如何在 Dreamweaver 模板中创建和删除可编辑区域。 可编辑模板区域控制在基于模板的页面中用户可以编辑哪些区域。在插入可编辑区域之前,将要插入该区域的文档另存为模板。 注意:如果您是在文档而不是模板文件中插入可编辑区域,则会收到警告,告诉您该文档将自动另存为模板。 您可以将可编辑区域置于页面的任意位置,但如果要使表格可编辑,您需要考虑以下几点: 可以将整个表格或单独的表格单元格标记为可

  • 在我的Grails项目中,我使用PDF插件从gsp页面生成PDF。 它工作得很好,但我想为用户添加更多功能,因此我想允许用户编辑PDF基本模板(在gsp页面中定义),特别是我想允许编辑模板内的文本并将其存储在某处。 有人知道怎么做吗?

  • 我看到的所有网站都可以在检查元素窗口的控制台中使用此功能进行编辑。我要禁用这个操作。我正在建立一个考试的结果表,我不想让其他人编辑(即使是本地的,使它看起来逼真) 如果这个布尔值更改为true,任何人都可以编辑网站。那么如何确保这种情况不会发生呢

  • 我有一个通过ItemsSource属性绑定到ListView的可观察集合。我使用GridView来显示ListView中的项。通过将我的ViewModel中的“IsServiceMode”属性设置为“true”(DataContext为包含ListView的UserControl),我希望将GridViewColumn更改为使用TextBox而不是TextBlock。我将CellTemplates

  • 我试图在对话框中创建一个编辑文本框,用于输入密码。当我在做的时候,我不能做。我是这方面的初学者。请帮我做这件事。 形象 我想得到作为

  • 了解如何在 Dreamweaver 中创建并修改用于分隔文本和可视对象的水平线。 水平线对于组织信息很有用。在页面上,可以使用一条或多条水平线以可视方式分隔文本和对象。 创建水平线 在“文档”窗口中,将插入点放在要插入水平线的位置。 选择“插入”>“HTML”>“水平线”。 也可以从“插入”面板的“HTML”部分插入水平线。 修改水平线 在“文档”窗口中,选择水平线。 选择“窗口”>“属性”打开属