Before Cataloging my object I run: <dtml-call "multi.set()">
Just to make sure you know, python classes can define an __init__ method to initialize attributes like this.
I know it, but in that case I didn't want to use __init__.
But it never works.
Any help greatly appreciated.
I'd like to help, but 'But it never works' is just not enough detail for me or anyone else to even begin to help you.
_How_ does it never work?
When i make a search i get "There is no data matching this Myfolder query". See different tests below.
Does it tell you an error?
If there is an error, do you get a traceback?
No error, no traceback. Neither when cataloging, neither when searching.
Does nothing happen?
By default, nothing will happen if it _does_ work. What are you searching for in this case to try and match your dictionary value? How are you searching? How does this not return what you expect?
I try to search all the object where b['one'] = 'un'. I use the input form generated by the ZSearch interface. I typed 'un' in the b field of the input form #as expected i got "There is no data matching this Myfolder query" I type 'un' in the b['one'] filed of the input form #i expected one object to be returned i got "There is no data matching this Myfolder query"
Obviously a TextIndex is not what you want, that's for indexing documents of text, and trying to text index a dictionary will be ignored by the Catalog. So we can discard that part of your problem right off. FieldIndexes index a value to a sequence of documents, and that value can be any python object. So a FieldIndex should work just fine in this case.
-Michel
Maybe my example was bad but some values of my dictionary could be long text. That's why I also try it with Textfield. But forget the Textfield. Here other details of what i have done: **Metatables** b a b['one'] **Indexes** b a b['one'] I then used Find objects to catalog (i have just one for the test). **Status** 1 object are in b 1 object are in a 1 object are in b['one'] I created a ZSearch Interface. Then: Test1. in my input form b = 'un' (other fields empty) result ====> "There is no data matching this Myfolder query". Test2 in the input form a=a_content result =====> b = the b dictionary a = a_content b['one'] #here i expected b['one'] = 'un' Test 3 in the input form b['one'] = 'un' other fields empty. result ====> "There is no data matching this Myfolder query". And i am sure the content of b['one'] is 'un'. (I tried my_instance['one'], and got 'un' as expected). It seem that when caloging, ZCatalog didn't "find" the b['one'] element. Bad syntax? Hope i have given enough details and thanks again for your patience. Oscar