From b43fb967904f3e5cb7a39a69e40bbf5b612dfeb1 Mon Sep 17 00:00:00 2001 From: pcompassion Date: Fri, 7 Jul 2017 17:57:45 +0900 Subject: [PATCH 1/2] python 3 compatibility --- django_remote_forms/fields.py | 2 +- django_remote_forms/forms.py | 2 +- django_remote_forms/utils.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django_remote_forms/fields.py b/django_remote_forms/fields.py index 4e0d33a..b51b5a3 100644 --- a/django_remote_forms/fields.py +++ b/django_remote_forms/fields.py @@ -40,7 +40,7 @@ def as_dict(self): 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: + except Exception as e: logger.warning('Error serializing %s: %s', remote_widget_class_name, str(e)) widget_dict = {} else: diff --git a/django_remote_forms/forms.py b/django_remote_forms/forms.py index 26b38fb..ee736dd 100644 --- a/django_remote_forms/forms.py +++ b/django_remote_forms/forms.py @@ -138,7 +138,7 @@ def as_dict(self): 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: From 46d4cd30f57e7c99fed04e2add7d71f768d21cd9 Mon Sep 17 00:00:00 2001 From: pcompassion Date: Fri, 7 Jul 2017 18:53:27 +0900 Subject: [PATCH 2/2] fix --- django_remote_forms/fields.py | 16 ---------------- django_remote_forms/forms.py | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/django_remote_forms/fields.py b/django_remote_forms/fields.py index b51b5a3..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 as 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 ee736dd..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,7 +135,16 @@ 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)