          Return the default list of field names that will be used if the
          `Meta.fields` option is not specified.
          """
          return (
              [api_settings.URL_FIELD_NAME] +
              list(declared_fields.keys()) +
              list(model_info.fields.keys()) +
              list(model_info.forward_relations.keys())
          )
  
 
</s> remove     # Default `create` and `update` behavior...
 </s> add     # The field name for hyperlinked identity fields. Defaults to 'url'.
    # You can modify this using the API setting.
    #
    # Note that if you instead need modify this on a per-serializer basis,
    # you'll also need to ensure you update the `create` method on any generic
    # views, to correctly handle the 'Location' response header for
    # "HTTP 201 Created" responses.
    url_field_name = api_settings.URL_FIELD_NAME </s> remove             extra_kwargs[api_settings.URL_FIELD_NAME] = kwargs
 </s> add             extra_kwargs[self.url_field_name] = kwargs </s> remove             kwargs = extra_kwargs.get(api_settings.URL_FIELD_NAME, {})
 </s> add             kwargs = extra_kwargs.get(self.url_field_name, {}) </s> remove             extra_kwargs[api_settings.URL_FIELD_NAME] = kwargs
 </s> add             extra_kwargs[self.url_field_name] = kwargs
            [self.url_field_name] +
          Return the default list of field names that will be used if the
          `Meta.fields` option is not specified.
          """
          return (
            [self.url_field_name] +
              list(declared_fields.keys()) +
              list(model_info.fields.keys()) +
              list(model_info.forward_relations.keys())
          )
  
keep keep keep keep replace keep keep keep keep keep
 Added url_field_name class attribute to ModelSerializer. Closes #3106. 
rest_framework/serializers.py