  
      def __init__(self, *args, **kwargs):
          self.queryset = kwargs.pop('queryset', None)
          super(RelatedField, self).__init__(*args, **kwargs)
          self.read_only = self.default_read_only
  
      ### We need this stuff to make form choices work...
  
      # def __deepcopy__(self, memo):
      #     result = super(RelatedField, self).__deepcopy__(memo)
 
</s> remove         self.fields = copy.deepcopy(self.base_fields)
 </s> add  </s> remove     def initialize(self, parent):
 </s> add     def initialize(self, parent, field_name): </s> remove     def restore_object(self, attrs, instance=None):
        return BlogPostComment(**attrs)
 </s> add     class Meta:
        model = BlogPostComment
        fields = ('text', 'blog_post_url') </s> remove     blog_post_url = serializers.HyperlinkedRelatedField(source='blog_post', view_name='blogpost-detail', queryset=BlogPost.objects.all())
 </s> add     blog_post_url = serializers.HyperlinkedRelatedField(source='blog_post', view_name='blogpost-detail')
        self.read_only = kwargs.pop('read_only', self.default_read_only)

    def initialize(self, parent, field_name):
        super(RelatedField, self).initialize(parent, field_name)
        if self.queryset is None and not self.read_only:
            try:
                manager = getattr(self.parent.opts.model, self.source or field_name)
                if hasattr(manager, 'related'):  # Forward
                    self.queryset = manager.related.model._default_manager.all()
                else:  # Reverse
                    self.queryset = manager.field.rel.to._default_manager.all()
            except:
                raise
                msg = ('Serializer related fields must include a `queryset`' +
                       ' argument or set `read_only=True')
                raise Exception(msg)
  
      def __init__(self, *args, **kwargs):
          self.queryset = kwargs.pop('queryset', None)
          super(RelatedField, self).__init__(*args, **kwargs)
        self.read_only = kwargs.pop('read_only', self.default_read_only)

    def initialize(self, parent, field_name):
        super(RelatedField, self).initialize(parent, field_name)
        if self.queryset is None and not self.read_only:
            try:
                manager = getattr(self.parent.opts.model, self.source or field_name)
                if hasattr(manager, 'related'):  # Forward
                    self.queryset = manager.related.model._default_manager.all()
                else:  # Reverse
                    self.queryset = manager.field.rel.to._default_manager.all()
            except:
                raise
                msg = ('Serializer related fields must include a `queryset`' +
                       ' argument or set `read_only=True')
                raise Exception(msg)
  
      ### We need this stuff to make form choices work...
  
      # def __deepcopy__(self, memo):
      #     result = super(RelatedField, self).__deepcopy__(memo)
keep keep keep keep replace keep keep keep keep keep
 `queryset` argument is now optional on writable model fields. 
rest_framework/fields.py