Il 27/07/2010 12.18, Yuri ha scritto:
http://svn.zope.org/Zope/trunk/src/OFS/interfaces.py?rev=113612&view=markup

http://svn.zope.org/Zope/trunk/src/OFS/FindSupport.py?rev=114528&view=markup

link fondamentali.... tks
sulla avanzata,
ahhh, ecco adesso è chiaro:

  1. nella ricerca semplice posso cercare solamente tramite ID esatto
     (senza wildcard)
  2. nella ricerca avanzata, posso usare espressioni regolari (che però
     non vengono valutate solo sul campo ID, ma sull'intero oggetto (o
     forse solo sul brain) restituito dalla ricerca).

quindi il problema è capire cosa ci va scritto nella ricerca avanzata, nel campo expr.

guardando il codice, la riga che interessa è quella che contiene:

expr_match(ob, obj_expr))

vediamo come è definita questa funzione
def expr_match(ob, ed, c=InstanceDict, r=0):
     e, md, push, pop=ed
     push(c(ob, md))
     try: r=e.eval(md)
     finally:
         pop()
         return r
fine della storia: il codice mi è oscuro
ad ogni modo, forse si tratta solo di passare il corretto obj_expr tramite il form di ricerca avanzata.

  hai "expr" che ti permette di controllare, ad esempio,
se l'estensione termina per .doc. Ovviamente devi fare tu tutto :)

se ad esempio volessi trovare gli oggetti con id di lunghezza uguale a 5 caratteri alfabetici minuscoli? se non erro, la RE dovrebbe essere "[a-z]{5,5}"

ma cosa dovrei scrivere nel campo expr? qualche esempio?

una volta capito come scriverci una RE semplice, poi mi complico la vita con tutta calma.


Giacomo



_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a