      def get(self, request, *args, **kwargs):
          queryset = self.queryset if self.queryset else self.model.objects.all()
          return queryset.filer(**kwargs)
  
 
</s> remove     def get_form(self, data=None):
        return None

 </s> add  </s> remove     allowed_methods = ('GET', 'POST')
 </s> add  </s> remove     # Map standard HTTP methods to function calls
    callmap = { 'GET': 'get', 'POST': 'post', 
                'PUT': 'put', 'DELETE': 'delete' }

    def get(self, request, *args, **kwargs):
        """Must be subclassed to be implemented."""
        self.not_implemented('GET')


    def post(self, request, *args, **kwargs):
        """Must be subclassed to be implemented."""
        self.not_implemented('POST')


    def put(self, request, *args, **kwargs):
        """Must be subclassed to be implemented."""
        self.not_implemented('PUT')


    def delete(self, request, *args, **kwargs):
        """Must be subclassed to be implemented."""
        self.not_implemented('DELETE')
 </s> add     @property
    def allowed_methods(self):
        return [method.upper() for method in self.http_method_names if hasattr(self, method)] </s> remove             allowed_methods = anon_allowed_methods = ('POST',)
 </s> add             permissions = () </s> remove             anon_allowed_methods = allowed_methods = ('GET',)
 </s> add             permissions = ()

    post = put = delete = http_method_not_allowed
      def get(self, request, *args, **kwargs):
          queryset = self.queryset if self.queryset else self.model.objects.all()
          return queryset.filer(**kwargs)
  
    post = put = delete = http_method_not_allowed
keep keep keep add
 Generic permissions added, allowed_methods and anon_allowed_methods now defunct, dispatch now mirrors View.dispatch more nicely 
djangorestframework/modelresource.py