【问题标题】:How to make a "create-only" non-editable field in django admin如何在 django admin 中创建“仅创建”不可编辑字段
【发布时间】:2021-04-02 15:22:12
【问题描述】:

我正在寻找一些关于使用模型在 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”解决了以后编辑的问题,但是在创建的时候就被禁止了。

问题:我使用此字段进行哈希,我不想再进行此更改。我考虑使用第二个字段,该字段将在创建中的可编辑字段之上生成哈希,之后该字段将是“死的”,但在我看来这与正常化的 2 方式相反。 还有更优雅的方式吗?

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    像这样在您的 Admin 类中覆盖 get_readonly_fields:

    def get_readonly_fields(self, request, obj=None):
        if obj:
            return ['source_slug'] 
        return []
    

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2023-03-05
      • 2016-12-16
      • 2016-02-04
      • 2019-08-07
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多