diff --git a/django_remote_forms/fields.py b/django_remote_forms/fields.py index 4e0d33a..42be1b3 100644 --- a/django_remote_forms/fields.py +++ b/django_remote_forms/fields.py @@ -32,22 +32,6 @@ def as_dict(self): field_dict['initial'] = self.form_initial_data or self.field.initial field_dict['help_text'] = self.field.help_text - field_dict['error_messages'] = self.field.error_messages - - # Instantiate the Remote Forms equivalent of the widget if possible - # in order to retrieve the widget contents as a dictionary. - remote_widget_class_name = 'Remote%s' % self.field.widget.__class__.__name__ - try: - remote_widget_class = getattr(widgets, remote_widget_class_name) - remote_widget = remote_widget_class(self.field.widget, field_name=self.field_name) - except Exception, e: - logger.warning('Error serializing %s: %s', remote_widget_class_name, str(e)) - widget_dict = {} - else: - widget_dict = remote_widget.as_dict() - - field_dict['widget'] = widget_dict - return field_dict diff --git a/django_remote_forms/forms.py b/django_remote_forms/forms.py index 26b38fb..2353e2d 100644 --- a/django_remote_forms/forms.py +++ b/django_remote_forms/forms.py @@ -1,4 +1,5 @@ from collections import OrderedDict +from django import forms from django_remote_forms import fields, logger from django_remote_forms.utils import resolve_promise @@ -38,7 +39,7 @@ def __init__(self, form, *args, **kwargs): 'Readonly fields %s are not present in form fields' % (set(self.ordered_fields) - self.all_fields)) self.ordered_fields = [] - if self.included_fields | self.excluded_fields: + if self.included_fields & self.excluded_fields: logger.warning( 'Included and excluded fields have following fields %s in common' % ( set(self.ordered_fields) - self.all_fields @@ -134,11 +135,20 @@ def as_dict(self): # Instantiate the Remote Forms equivalent of the field if possible # in order to retrieve the field contents as a dictionary. - remote_field_class_name = 'Remote%s' % field.__class__.__name__ + # remote_field_class_name = 'Remote%s' % field.__class__.__name__ + remote_field_class_name = 'RemoteField' + if issubclass(field.__class__, forms.DateField): + remote_field_class_name = 'Remote{}'.format('DateField') + elif issubclass(field.__class__, forms.TimeField): + remote_field_class_name = 'Remote{}'.format('TimeField') + elif issubclass(field.__class__, forms.DateTimeField): + remote_field_class_name = 'Remote{}'.format('DateTimeField') + elif issubclass(field.__class__, forms.ChoiceField): + remote_field_class_name = 'Remote{}'.format('ChoiceField') try: remote_field_class = getattr(fields, remote_field_class_name) remote_field = remote_field_class(field, form_initial_field_data, field_name=name) - except Exception, e: + except Exception as e: logger.warning('Error serializing field %s: %s', remote_field_class_name, str(e)) field_dict = {} else: diff --git a/django_remote_forms/utils.py b/django_remote_forms/utils.py index 0391fa0..cc47c2a 100644 --- a/django_remote_forms/utils.py +++ b/django_remote_forms/utils.py @@ -1,5 +1,5 @@ from django.utils.functional import Promise -from django.utils.encoding import force_unicode +from django.utils.encoding import force_text def resolve_promise(o): @@ -10,7 +10,7 @@ def resolve_promise(o): o = [resolve_promise(x) for x in o] elif isinstance(o, Promise): try: - o = force_unicode(o) + o = force_text(o) except: # Item could be a lazy tuple or list try: