如果登录的用户不是 super 用户,我需要在 Django Admin 的表单中隐藏一些字段。这是我想出的:
def get_form(self, request, obj=None, **kwargs):
form = super(RestauranteAdmin, self).get_form(request, obj, **kwargs)
if not request.user.is_superuser:
form.base_fields.pop('approved')
form.base_fields.pop('day_of_the_week')
form.base_fields.pop('photo')
form.label_suffix = ''
return form
这确实隐藏了必要的字段,但出于某种原因,如果用户不是 super 用户,管理员也会停止呈现我的内联。据我所知,这个方法应该与内联无关。我错过了什么吗?
谢谢,
最佳答案
在调用父方法之前排除它
希望对你有帮助
def get_form(self, request, obj=None, **kwargs):
if not request.user.is_superuser:
self.exclude = []
else:
self.exclude = ['approved','day_of_the_week','photo']
return super(RestauranteAdmin, self).get_form(request, obj, **kwargs)
关于python - Django Admin - 覆盖 get_form 后缺少内联表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257081/