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)