2010-10-12 122 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