[Zope3-Users] nextURL not working as expected

Andreas Reuleaux reuleaux at web.de
Mon Aug 7 11:08:52 EDT 2006


I am using nextURL() in a similar fashion (only using create(),
no add part) and it works fine for me, i. e. I am redirected as
expected, see the code snippet below.

I guess with the line

    self.context[data["title"]] = self.link

your are trying to add the object. - This is just my guess: 
You might try to add
  
    self._finished_add = True

as in the original code for add() and/or even use 

    zope.event.notify(ObjectCreatedEvent(ob))

as in the original code for createAndAdd().

This is what works for me:

    class addView(form.AddForm):

	form_fields = form.Fields(IAdr)

	template = namedtemplate.NamedTemplate('af')

	label=u'Adresse Hinzufügen'

	def setUpWidgets(self, ignore_request=False):
	    super(addView, self).setUpWidgets(ignore_request=ignore_request)
	    inWs(self.widgets)

	def create(self, data):
	    """..."""
	    a = Adr()
	    for k in data.keys():
		setattr(a, k, data[k])
	    # für nextURL() später
	    self.a=a
	    return a

	# quasi redirect
	def nextURL(self):
	    return absoluteURL(self.a, self.request)

	# "Speichern"
	actions=form.AddForm.actions[:]
	actions[u'actions.add'].label=u'Speichern'


On Mon, Aug 07, 2006 at 04:03:53PM +0200, Florian Lindner wrote:
> Hello,
> I habe a view class derived from zope.formlib.form.AddForm:
> 
> class AddLink(form.AddForm):
>     form_fields = form.fields(ILink)
>     
>     def createAndAdd(self, data):
>         self.link = Link()
>         self.link.title = data['title']
>         self.link.description = data['description']
>         self.link.URL = data['URL']
>         
>         self.context[data["title"]] = self.link
>         
>         return self.link
>     
>     def nextURL(self):
>         return absoluteURL(self.link, self.request)
> 
> The view is registered for "zope.app.container.interfaces.IAdding"
> 
> After I have added the object I except to be redirected to the URL returned in 
> nextURL. Instead I am always redirected to the add form again. It seems that 
> nextURL is not even called. Why?
> 
> Thanks,
> 
> Florian
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
> 
> 
> !DSPAM:44d74b92206451637432971!


More information about the Zope3-users mailing list