from django.contrib import admin
from django.contrib.admin.utils import flatten_fieldsets
class CustomAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
if request.user.is_superuser:
return self.readonly_fields
if self.declared_fieldsets:
return flatten_fieldsets(self.declared_fieldsets)
else:
return list(set(
[field.name for field in self.opts.local_fields] +
[field.name for field in self.opts.local_many_to_many]
))
def get_readonly_fields(self, request, obj=None):
if obj:
self.readonly_fields = [field.name for field in obj.__class__._meta.fields]
return self.readonly_fields
好吧,现在是这样:
仍然在寻找一种不那么丑陋的方式。
小心,self.model.\u meta.fields不一定是CustomAdmin拥有的字段!
“管理的所有字段”看起来更像这样:
您可以遍历模型元字段:
相关问题 更多 >
编程相关推荐