Re: Re: redirect klappt nicht

Thomas Maßmann <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
Mal ganz schnell zusammen geschustert: wenn Du die URL der BV aufrufst  
(@@searchView/) kannst Du einen Redirect machen, indem Du den Code in  
die __call__-Methode schreibst. Die Methode (mySearch) über die URL  
aufzurufen geht nicht (oder hab ich da jetzt was verpasst?). Der  
Redirect geht aber über die Methode, wenn Du sie in einem Template per  
TAL aufrufst.

Beispiel:

class searchView(BrowserView):
     def __init__(self, context, request):
	self.context = context
	self.request = request

     def __call__(self):
	url = self.request.get("HTTP_REFERER")
	self.request.response.redirect(url)

     def mySearch(self):
        #mach irgendwas in der Methode
	url = self.request.get("HTTP_REFERER")
	return url
	# oder: self.request.response.redirect(url)

-----

     <form action="" method="post" tal:attributes="action string:$ 
{context/absolute_url}/@@searchView/;">
         <input type="submit" value="submit" />
     </form>

     <span tal:content="context/@@searchView/mySearch" />


Thomas


Am 17.12.2008 um 13:47 schrieb T.Hinze:

> Nun das habe ich versucht.
>
> meine BV ist als searchView bekannt
>
> ...
>    def mySearch(self):
>        url = self.request.get("HTTP_REFERER")
>        self.request.response.redirect(url)
>        return
> ...
>
> <form action="" method="post"
>      tal:attributes="action
> string:${context/absolute_url}/@@searchView/mySearch;">
>
> Wenn ich nun das Formular, welches unter /xyz/search erreichbar ist,
> absende so wird es ja an /@@searchView/mySearch gesendet - dort von  
> der
> BV verarbeitet und direkt weitergeleitet auf /xyz/search.
>
> So war der Wunsch. Jedoch lande ich auf einer leeren Seite und in der
> URL steht /@@searchView/mySearch .
>
> Was mache ich denn noch falsch?
>
> Bei den CPT, CPY, VPY wird das controller_state benutzt. Kann ich das
> nicht auch verwenden, weil man damit Infos übergeben kann. Nur wie?
>
> Thomas Maßmann schrieb:
>> Hallo,
>>
>> wird denn der redirect ausgeführt? Weil die Funktion xyz wird mit dem
>> redirect nicht beendet. Die Ausgabe auf der Konsole ist also ok. Es
>> fehlt nur das return.
>>
>> HTH Thomas
>>
>>
>> Am 17.12.2008 um 11:45 schrieb T.Hinze:
>>
>>> Hallo,
>>> ich habe ein Problem mit dem Versuch einen Redirect aus einer
>>> BrowserView-Methode heraus auszuführen.
>>>
>>> Ich lande beim Aufruf meiner Methode xyz() in selbiger und dort  
>>> steht
>>> testweise
>>>
>>> def xyz(self):
>>> self.request.response.redirect('xyz')
>>> print 'redirect failed'
>>>
>>>
>>> Rufe ich also diese Methode auf, so erscheint mir in der Console der
>>> String 'redirect failed'. D.h. der redirect() wird ignoriert.
>>> Leider erschließt sich mir nicht warum?
>>>
>>> Übersehe ich denn etwas grundlegendes?
>>>
>>> th
>>>
>>>
>>> _______________________________________________
>>> zope mailing list
>>> [email protected]
>>> https://mail.dzug.org/mailman/listinfo/zope
>>
>> EDV-Beratung Thomas Maßmann
>> E-Mail: [email protected]
>> WWW: it-spir.it
>>
>>
>>
>>
>>
>> _______________________________________________
>> zope mailing list
>> [email protected]
>> https://mail.dzug.org/mailman/listinfo/zope
>>
>
>
> _______________________________________________
> zope mailing list
> [email protected]
> https://mail.dzug.org/mailman/listinfo/zope

EDV-Beratung Thomas Maßmann
E-Mail: [email protected]
WWW: it-spir.it





_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.