Readonly models in Django admin interface?

前端 未结 14 1574
北恋
北恋 2020-12-02 05:53

How can I make a model completely read-only in the admin interface? It\'s for a kind of log table, where I\'m using the admin features to search, sort, filter etc, but there

14条回答
  •  余生分开走
    2020-12-02 06:09

    The accepted answer should work, but this will also preserve the display order of the readonly fields. You also don't have to hardcode the model with this solution.

    class ReadonlyAdmin(admin.ModelAdmin):
       def __init__(self, model, admin_site):
          super(ReadonlyAdmin, self).__init__(model, admin_site)
          self.readonly_fields = [field.name for field in filter(lambda f: not f.auto_created, model._meta.fields)]
    
       def has_delete_permission(self, request, obj=None):
           return False
       def has_add_permission(self, request, obj=None):
           return False
    

提交回复
热议问题