Hmmm, I can't think of what may be happening. One more debug thing to
try, print the help of DjangoSoapApp just before the problem line:

print help(DjangoSoapApp)

That way, if the DjangoSoapApp symbol is getting reassigned to a
function somewhere along the way, that might clue you in.

_Nik

On 7/5/2012 11:17 AM, Jeff Silverman wrote:
> I've been flip flopping my views.py between that snippet, and
> https://gist.github.com/935809, which is a bit different, but easier
> to follow.
>
> On Jul 5, 2:03 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org>
> wrote:
>> Is your code still the same as you posted 
>> earlier:http://djangosnippets.org/snippets/2638/?And the error is occuring on
>> ln 28?
>>
>> _Nik
>>
>> On 7/5/2012 11:01 AM, Jeff Silverman wrote:
>>
>>
>>
>>> The print output is:
>>> <type 'function'>
>>> On Jul 5, 1:38 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org>
>>> wrote:
>>>> Hmmm, not sure about this one. Try printing out the type of
>>>> DjangoSoapApp before that line is called:
>>>> print type(DjangoSoapApp)
>>>> _Nik
>>>> On 7/5/2012 5:20 AM, Jeff Silverman wrote:
>>>>> Ok, I'm further along, I think.  Now I'm getting the following
>>>>> response = super(DjangoSoapApp, self).__call__(environ,
>>>>> start_response)
>>>>> (Pdb) p start_response
>>>>> <function start_response at 0x25d1ed8>
>>>>> (Pdb)  super(DjangoSoapApp, self).__call__(environ, start_response)
>>>>> *** TypeError: super() argument 1 must be type, not function
>>>>> On Jul 3, 3:47 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org>
>>>>> wrote:
>>>>>> Looking at the soaplib source, it looks like it required requests to be
>>>>>> made using POST. If you're loading this in a web browser to test, then
>>>>>> you're making a GET request. Try making a POST request (using something
>>>>>> like Fiddler) instead.
>>>>>> https://github.com/soaplib/soaplib/blob/master/src/soaplib/core/serve...
>>>>>> (line 84/85)
>>>>>> _Nik
>>>>>> On 7/3/2012 12:20 PM, Jeff Silverman wrote:
>>>>>>> http://djangosnippets.org/snippets/2638/
>>>>>>> On Jul 3, 2:56 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org>
>>>>>>> wrote:
>>>>>>>> Would you please provide a reference to the snippet or to your complete
>>>>>>>> code? It's hard to understand what's going on from this small bit.
>>>>>>>> _Nik
>>>>>>>> On 7/3/2012 11:33 AM, Jeff Silverman wrote:
>>>>>>>>> Thanks for the reply.  Removing that did not change the result.  Just
>>>>>>>>> an FYI, but I copied the code verbatim from the snippet.  that's why I
>>>>>>>>> cannot understand what's going on.  I continually get the405method
>>>>>>>>> not allowed error regardless.
>>>>>>>>> On Jul 3, 1:28 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org>
>>>>>>>>> wrote:
>>>>>>>>>> I'm not sure that this is the problem, but typically constructors 
>>>>>>>>>> should
>>>>>>>>>> not have a return value. Try removing the "return" from your
>>>>>>>>>> DjangoSoapApp constructor.
>>>>>>>>>> _Nik
>>>>>>>>>> On 7/3/2012 6:32 AM, Jeff Silverman wrote:
>>>>>>>>>>> Below is the code from the views.py
>>>>>>>>>>> The405is retunred from the 'return super(DjangoSoapApp,
>>>>>>>>>>> self).__init__(Application(services, tns))' statement.  I am using
>>>>>>>>>>> python 2.6, soaplib20 and django 1.3.  I am struggling to understand
>>>>>>>>>>> what exactly is wrong here.
>>>>>>>>>>> class HelloWorldService(DefinitionBase):
>>>>>>>>>>>     @soap(String,Integer,_returns=Array(String))
>>>>>>>>>>>     def say_smello(self,name,times):
>>>>>>>>>>>         results = []
>>>>>>>>>>>         for i in range(0,times):
>>>>>>>>>>>             results.append('Hello, %s'%name)
>>>>>>>>>>>         return results
>>>>>>>>>>> class DjangoSoapApp(WSGIApplication):
>>>>>>>>>>>     csrf_exempt = True
>>>>>>>>>>>     def __init__(self, services, tns):
>>>>>>>>>>>         """Create Django view for given SOAP soaplib services and
>>>>>>>>>>> tns"""
>>>>>>>>>>>         return super(DjangoSoapApp,
>>>>>>>>>>> self).__init__(Application(services, tns))
>>>>>>>>>>>     def __call__(self, request):
>>>>>>>>>>>         django_response = HttpResponse()
>>>>>>>>>>>         def start_response(status, headers):
>>>>>>>>>>>             django_response.status_code = int(status.split(' ', 
>>>>>>>>>>> 1)[0])
>>>>>>>>>>>             for header, value in headers:
>>>>>>>>>>>                 django_response[header] = value
>>>>>>>>>>>         response = super(DjangoSoapApp, self).__call__(request.META,
>>>>>>>>>>> start_response)
>>>>>>>>>>>         django_response.content = '\n'.join(response)
>>>>>>>>>>>         return django_response
>>>>>>>>>>> # the view to use in urls.py
>>>>>>>>>>> hello_world_service = DjangoSoapApp([HelloWorldService], 
>>>>>>>>>>> '__name__')- Hide quoted text -
>>>>>>>>>> - Show quoted text -- Hide quoted text -
>>>>>>>> - Show quoted text -- Hide quoted text -
>>>>>> - Show quoted text -- Hide quoted text -
>>>> - Show quoted text -- Hide quoted text -
>> - Show quoted text -


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to