@@ -151,18 +151,19 @@ def get_index_fieldname(self, fieldname):
151
151
def get_facet_field_name (self , fieldname ):
152
152
"""
153
153
Returns the actual name of the facet field in the index.
154
-
154
+
155
155
If not found, returns the fieldname provided.
156
156
"""
157
157
facet_fieldname = None
158
- if fieldname in self ._field_mapping ():
159
- facet_fieldname = self ._field_mapping ()[fieldname ]['facet_fieldname' ]
160
-
161
- if facet_fieldname :
162
- return self .get_index_fieldname (facet_fieldname )
163
- else :
164
- return fieldname
165
-
158
+
159
+ reverse_map = {}
160
+
161
+ for field , info in self ._field_mapping ().items ():
162
+ if info ['facet_fieldname' ] and info ['facet_fieldname' ] == fieldname :
163
+ return info ['index_fieldname' ]
164
+
165
+ return self .get_index_fieldname (fieldname )
166
+
166
167
def _field_mapping (self ):
167
168
mapping = {}
168
169
@@ -174,14 +175,15 @@ def _field_mapping(self):
174
175
if field_name in mapping and field_object .index_fieldname != mapping [field_name ]['index_fieldname' ]:
175
176
# We've already seen this field in the list. Raise an exception if index_fieldname differs.
176
177
raise SearchFieldError ("All uses of the '%s' field need to use the same 'index_fieldname' attribute." % field_name )
177
-
178
+
178
179
facet_fieldname = None
180
+
179
181
if hasattr (field_object , 'facet_for' ):
180
182
if field_object .facet_for :
181
183
facet_fieldname = field_object .facet_for
182
184
else :
183
185
facet_fieldname = field_object .instance_name
184
-
186
+
185
187
mapping [field_name ] = {
186
188
'index_fieldname' : field_object .index_fieldname ,
187
189
'facet_fieldname' : facet_fieldname ,
0 commit comments