DjangoのAdmin Siteで特定のModelで参照だけしたいときがあったので、
いろいろ調べてみたときの備忘録。
ReadOnlyAdmin
こんな感じで、全部OFF or 処理を空にすればよさそう。
from django.contrib import admin class ReadOnlyAdmin(admin.ModelAdmin): def __init__(self, *args, **kwargs): super(ReadOnlyAdmin, self).__init__(*args, **kwargs) # すべてのフィールドをreadonlyに設定 self.readonly_fields = [field.name for field in self.model._meta.get_fields()] def has_add_permission(self, request): # 追加の権限OFF return False def has_change_permission(self, request, obj=None): # 変更の権限OFF return False def has_delete_permission(self, request, obj=None): # 削除の権限OFF return False def save_model(self, request, obj, form, change): # save時の処理で何もしない pass def save_related(self, request, form, formsets, change): # save時の処理で何もしない pass def delete_model(self, request, obj): # delete時の処理で何もしない pass
以上!!