Esempio n. 1
0
 def _get_filter(field):
     if isinstance(field, (tuple, list)):
         info = _get_filter(field[0])
         info['field_title'] = field[1] + ': ' + info['field_title']
         return info
     if isinstance(field, six.string_types):
         orign = field
         opts = self.opts
         fields = field.split('__')
         title = ''
         for f in fields:
             field = opts.get_field_by_name(f)[0]
             rel = getattr(field, 'related_model', None)
             if rel:
                 opts = field.related_model._meta
                 #~ print field, dir(field)
                 title += force_text(opts.verbose_name) + ': '
                 #~ field = field.field
             elif hasattr(field, 'parent_model'):
                 title += force_text(field.verbose_name)
                 field = field.field
             else:
                 #~ print field, dir(field)
                 title += force_text(field.verbose_name)
     else:
         orign = field.name
         title = force_text(field.verbose_name)
     return {
         'model': force_text(field.model._meta),
         'field': orign,
         'field_title': title,
         'widget': get_widget_from_field(field, True).get_dict(),
         }
Esempio n. 2
0
 def prepare_widget(self, field_name):
     """ Возвращает виджет с заменой атрибутов, согласно настроек
         текущего класса.
     """
     dic = dict([ (field.name, field) for field in self.get_fields_objects() ])
     widget = get_widget_from_field(dic[field_name])
     if not widget.is_configured:
         if self.list_display_css.has_key(field_name):
             new_class = '%s %s' % (widget.attr.get('class', ''), self.list_display_css[field_name])
             widget.attr.update({'class': new_class})
             widget.is_configured = True
     return widget