2010-10-12 119 views

回答

4

你可以重寫你的ModelAdmin的get_readonly_fields到只讀設置某些字段:

class MyAdmin(admin.ModelAdmin): 

    def get_readonly_fields(self, request, obj=None): 
     if obj: # when editing an object 
      return ['field1'] 
     return self.readonly_fields 
+0

H1可以請你解釋你的例子多一點?我對Django很陌生。您的代碼如何檢查打開的文檔(模型實例)是第一次(創建)還是連續(編輯)?當創建實例時,我需要一些字段(並非全部)可編輯,並且在下列時間將實例打開進行編輯時將其阻止。謝謝! – 2010-10-13 15:15:29

+0

如果創建了新文檔,則不會將'obj'傳遞給該方法... – 2010-10-13 17:39:04

+0

這真的很棒,但它似乎不適用於內聯。出於某種原因,當我在內聯中使用此函數時,即使在創建對象時,它也會使該字段爲只讀字段。 – Hassan 2017-05-04 15:05:00