[Zope-CMF] Publishing CMF Objects with ZPublisher.Client
Doyon, Jean-Francois
Jean-Francois.Doyon@CCRS.NRCan.gc.ca
Sat, 12 Jan 2002 14:35:37 -0500
Tres,
OK, thanks that helped some :)
Now i'm having an even stranger problem:
Traceback (most recent call last):
File "load_site.py", line 159, in ?
if __name__=='__main__': main()
File "load_site.py", line 64, in main
for f in files: upload_file(object, f)
File "load_site.py", line 87, in upload_file
return globals()['upload_'+ext](object, f)
File "load_site.py", line 119, in upload_html
call( object.invokeFactory(type_name='Document', id=name) )
File "/usr/local/Zope-2.4.3/lib/python/ZPublisher/Client.py", line 226, in
__call__
self.handleError(query, ec, em, headers, response)
File "/usr/local/Zope-2.4.3/lib/python/ZPublisher/Client.py", line 241, in
handleError
raise t, RemoteException(t,v,f,l,self.url,query,ec,em,response)
bci.ServerError: 302 (File: Unknown Line: Unknown)
302 Moved Temporarily for
http://localhost/site/english/batchtest/invokeFactory
Why am I getting this? I'm pretty sure nothing moved! Might this be becayse
I'm using Zope through Apache? The "Document" DOES get created, but my
"load_site" script dies in the process, and never goes any further.
Also, I need to populate the document. I tried:
call( object.invokeFactory( type_name='Document', id=name,
text=body, text_format='html' ) )
since according to invokeFactory extra arguments are passed on to the
constructor, but that didn't work. How come? Is this a bug?
So now Iv'e got:
call( object.invokeFactory(type_name='Document', id=name) )
document=object.__class__(object.url+'/'+name,
username=object.username, password=object.password)
call( document.manage_editDocument(text_format='html',text=body) )
But the script dies on the first line because of the 302, so the content
never gets put in!
Anyway I can work around the 302? Ignore it? Or even better, I'm pretty sure
a 302 should not be returned at all, why is this happening and how do I fix
it?
Thanks for all the help!
J.F.
-----Original Message-----
From: Tres Seaver [mailto:tseaver@zope.com]
Sent: Friday, January 11, 2002 8:10 PM
To: Doyon, Jean-Francois
Cc: 'zope-cmf@zope.org'
Subject: Re: [Zope-CMF] Publishing CMF Objects with ZPublisher.Client
Doyon, Jean-Francois wrote:
> Hello,
>
> I'm trying to modify the load_site.py script in order to batch upload CMF
> content using CMFDefault object-types, and am having some trouble.
>
> Right now I have a line that says:
>
>
call(object.manage_addProduct['CMFDefault'].manage_addContent(type='Document
> ', id=name))
>
> And it dies with the following:
>
> Traceback (most recent call last):
> File "load_site.py", line 153, in ?
> if __name__=='__main__': main()
> File "load_site.py", line 64, in main
> for f in files: upload_file(object, f)
> File "load_site.py", line 87, in upload_file
> return globals()['upload_'+ext](object, f)
> File "load_site.py", line 119, in upload_html
>
>
call(object.manage_addProduct['CMFDefault'].manage_addContent(type='Document
> ', id=name))
> AttributeError: Function instance has no attribute '__getitem__'
>
>
> I tried tracking down why this occurs, but I have to admit I think this is
a
> bit over my head, I get lost at the Function part in Client.py :) I have
> load_site working great with non-CMF content however.
>
> I also tried:
>
>
call(object.manage_addProduct['CMFDefault'].manage_addContent,type='Document
> ', id=name)
>
> and
>
> object.manage_addProduct['CMFDefault'].manage_addContent(type='Document',
> id=name)
>
> With no luck ...
>
> Has anybody tried this before? It's pretty crucial to me that I be able to
> do this! What am I missing?
The ZMI add list methods are really not the preferred way
to add content; your report makes me suspect that they are,
in fact, broken.
Try instead::
call( object.invokeFactory( type_name='Document', id=name ) )
Tres.
--
===============================================================
Tres Seaver tseaver@zope.com
Zope Corporation "Zope Dealers" http://www.zope.com