Michel Pelletier wrote:
Then you will get no results. This is because the 'date' index is storing DateTime objects, NOT strings. To get a result, you will need to pass the Catalog a query that contains an instanciated DateTime object:
<dtml-in "Catalog(date=DateTime(date))"> ... </dtml-in>
Ah, that makes sense! Thanks. (although, I believe it's ZopeTime not DateTime? At least...ZopeTime works but not DateTime - I get a keyError otherwise)
A very useful example of using dates can be seen on the zope.org advanced search page:
<snip> Yes indeed. It's now saved for later reference :-) (The following is not a problem, it's a solution for others who might have had a similar problem) However, I came across another "problem". Now that I'm passing in a ZopeTime object, Zope will insist on _getting_ a ZopeTime object. Let me clarify. I have a search form such: Title: [textfield] Date: [textfield] Text/keyword: [textfield] Now, if I leave the date field blank, I get an error because it's expecting a ZopeTime object. There are cases where you'll want to make a search by one or more items that you know. You might not know the date of the item, for instance. So how do I get around this error? (This problem did not surface if only strings were used.) You need to do: <dtml-if date> <dtml-in "Catalog(date=ZopeTime(date))"> ... </dtml-in> <dtml-else> <dtml-in Catalog> ... </dtml-in> <dtml-if> The first one is the "special" case where a date is specified and the second one for when it's not. This avoids the Error message for not passing in the ZopeTime object. Simple but it got me stumped for a bit... -- ----------------------------------------- Kuraiken - Python fanatic. ----------------------------------------- Python. Try it. It'll swallow you whole! -----------------------------------------