[Answered ]-How to restrict certain fields in a model based on the user in django

2👍

✅

Well,this was what worked finally for me,

 class StudentAdmin(admin.ModelAdmin):
     def get_queryset(self, request):
         qs = super(StudentAdmin, self).get_queryset(request)
         if request.user.is_superuser:
             return qs
         return qs.filter(dept=request.user.department)

0👍

You can manage permission control in the admin:

class UserAdmin(admin.ModelAdmin):

    def has_change_permission(self, request, obj=None):
        return self.user_has_permission(request, obj)

    def user_has_permission(self, request, obj):
        if hasattr(request.user, 'department') and obj is not None:
            return request.user.department == obj.dept
        return False

You can implement the edit and delete permissions the same way.

Leave a comment