我想根据值在django管理界面中隐藏模型
在数据库中。
我的第一个解决方案是将其添加到应用程序的ready()
处理程序中:
from foo.models import MyModel
if MyModel.objects.filter(...).exists():
from foo.models import ModelToHide
admin.site.unregister(ModelToHide)
以上解决方案有效...除了:
这在CI中失败。
如果
CI
从头开始构建新系统,则MyModel
的数据库表尚不存在:任何提示如何解决这个问题?
最佳答案
我认为解决方案在于this bit of the admin logic。
因此,您将为模型提供自定义的ModelAdmin
,然后重写get_model_perms
在admin.py
中执行以下操作:
class MyModelAdmin(admin.ModelAdmin):
def get_model_perms(self, request):
# Do your check here - if you want to hide the model from the admin then...
return {
'add': False,
'change': False,
'delete': False,
}
admin.site.register(MyModel, MyModelAdmin)
Django检查这些烫发是否为
True
-如果不是,则它将隐藏该模型。
关于django - 根据数据库中的值在Django Admin中隐藏模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423685/