簡體   English   中英

如何在 django 管理員中創建“僅創建”不可編輯字段

[英]How to make a “create-only” non-editable field in django admin

我正在尋找一些關於使用模型在 django 管理員上創建“僅創建”字段的解決方案。 我之前看到過一些問題,但沒有人能回答核心問題:當用戶在管理面板上創建時,該字段應該出現,但我不想能夠編輯。

模型.py

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

管理員.py

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

“readonly_fields”解決了以后編輯的問題,但在創建時卻被禁止了。

問題:我使用這個字段來制作 hash 並且我不想再進行這種更改了.. 我考慮過使用第二個字段來生成 hash 在創建中可編輯的一個字段之上,之后該字段將是“死的” ",但在我看來,這與 2 規范化方式相反。 有沒有更優雅的方式?

像這樣覆蓋管理員get_readonly_fields中的 get_readonly_fields :

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM