如何访问request
对象,以便我可以加载不同的管理员视图,具体取决于用户的排名。
以下是我想要的代码(admin.py
),但不知道如何访问当前用户。
class AdvancedPost(admin.ModelAdmin):
list_display = ['post_title', 'body', 'rating']
class SimplePost(admin.ModelAdmin):
list_display = ['post_title', 'category']
if request.user.is_superuser:
admin.site.register(Post, AdvancedPost)
else:
admin.site.register(Post, SimplePost)
由于
答案 0 :(得分:3)
您可以编写单个类并根据需要覆盖各个方法,例如:
class PostAdmin(admin.ModelAdmin):
def get_list_display(request):
if request.user.is_superuser:
return ['post_title', 'body', 'rating']
else:
return ['post_title', 'category']
admin.site.register(Post, PostAdmin)
请参阅https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_list_display以获取可以覆盖的方法列表。