RE: [Zope] Fetching data from external methods
sorry but your example did'nt work:
in external method:
return (obj1, obj2,)
in DTML:
<dtml-in external_method(your,params)> <dtml-var value1> <dtml-var value2> </dtml-in>
here is my submit forms code to explain my case <form action="LDAPsearch" method=POST ENCTYPE="multipart/form-data"> cn: <br> <input name="cn" size="10"><br> objectclass: <br> <input name="objectclass" size="15"><br><br> <input type="SUBMIT" name="send" value=" Search "> </form> LDAPsearch is my external method (object in zope which points to .py module) My method outputs are: res = (contains search result using forms input values) sn = res.sn (one of the values in res-object) return sn and i try to embed in dtml like this <dtml-in "LDAPsearch('666666','*',REQUEST)"> <dtml-var sn> </dtml-in> Zope returns error: Error Type: InError Error Value: Strings are not allowed as input to the in tag. if i try to return res.__dict__ in external method zope returns this kind of error: Error Type: KeyError Error Value: 0 this works <dtml-var "LDAPsearch('666666','*',REQUEST)"> but it lefs me with two problems 1) how i can input values in LDAPsearch(how i input here) 2) i don't have any control of return value, it returns list like this ('Ukko', '666666', 'oEmail')
If you are submitting to your external method from an HTML form, you will need to return the HTML to be def my_external_method(self,param1,param2): ...do stuff... string = '<HTML><BODY>' string = string + ...render your results here... string = string + '</BODY></HTML>' return string
this solution worked, but it's not what i really want to do. I don't want include return HTML-file in my python script, like in that example.
Jarkko Veijalainen wrote:
My method outputs are:
res = (contains search result using forms input values) sn = res.sn (one of the values in res-object) return sn ^^^^^^^^^ that should be 'return res'
...then the following will work:
<dtml-in "LDAPsearch('666666','*',REQUEST)"> <dtml-var sn> </dtml-in>
this works <dtml-var "LDAPsearch('666666','*',REQUEST)">
...because that displays sn, which is what you're returning!
1) how i can input values in LDAPsearch(how i input here)
Don't understand what you want here...
2) i don't have any control of return value, it returns list like this ('Ukko', '666666', 'oEmail')
you should be able to <dtml-in> over whatever is returning that... Chris
participants (2)
-
Chris Withers -
Jarkko Veijalainen