  
          if not user.has_perms(perms, obj):
              # If the user does not have permissions we need to determine if
              # they have read permissions to see 403, or not, and simply see
              # a 404 reponse.
  
              if request.method in ('GET', 'OPTIONS', 'HEAD'):
                  # Read permissions already checked and failed, no need
                  # to make another lookup.
                  raise Http404
 
</s> remove         # The suffix initkwarg is reserved for identifing the viewset type
 </s> add         # The suffix initkwarg is reserved for identifying the viewset type </s> remove     don't need to dig into the implemention.
 </s> add     don't need to dig into the implementation. </s> remove             # Get the model field that is refered too.
 </s> add             # Get the model field that is referred too. </s> remove         # `fields` is evalutated lazily. We do this to ensure that we don't
 </s> add         # `fields` is evaluated lazily. We do this to ensure that we don't </s> remove         # types might return a non-primative value for the pk otherwise.
 </s> add         # types might return a non-primitive value for the pk otherwise.
            # a 404 response.
  
          if not user.has_perms(perms, obj):
              # If the user does not have permissions we need to determine if
              # they have read permissions to see 403, or not, and simply see
            # a 404 response.
  
              if request.method in ('GET', 'OPTIONS', 'HEAD'):
                  # Read permissions already checked and failed, no need
                  # to make another lookup.
                  raise Http404
keep keep keep keep replace keep keep keep keep keep
 Removed unused imports, pep8 fixes, typo fixes 
rest_framework/permissions.py