Development #56614
Mis à jour par Frédéric Péters il y a plus de 2 ans
Ça fait
<pre>
def apply_filter_value(self, value, exclude=False):
assert self.pending_attr
field = self.get_field(self.pending_attr)
</pre>
qui fait
<pre>
def get_field(self, key):
for field in self._formdef.get_all_fields():
if getattr(field, 'varname', None) == key:
return field
</pre>
et la recherche se trouve ainsi limitée au premier champ avec l'identifiant fourni.
Il faudrait itérer sur tous les champs et faire un critère
<pre>Or(f1 @Or(f1 == value, f2 == value, f3 == value)</pre> value)@, etc.
<pre>
def apply_filter_value(self, value, exclude=False):
assert self.pending_attr
field = self.get_field(self.pending_attr)
</pre>
qui fait
<pre>
def get_field(self, key):
for field in self._formdef.get_all_fields():
if getattr(field, 'varname', None) == key:
return field
</pre>
et la recherche se trouve ainsi limitée au premier champ avec l'identifiant fourni.
Il faudrait itérer sur tous les champs et faire un critère
<pre>Or(f1 @Or(f1 == value, f2 == value, f3 == value)</pre> value)@, etc.