Move django utilities from sample into .ext.
diff --git a/apiclient/ext/django.py b/apiclient/ext/django.py
new file mode 100644
index 0000000..4217eaa
--- /dev/null
+++ b/apiclient/ext/django.py
@@ -0,0 +1,36 @@
+from django.db import models
+
+class OAuthCredentialsField(models.Field):
+
+ __metaclass__ = models.SubfieldBase
+
+ def db_type(self):
+ return 'VARCHAR'
+
+ def to_python(self, value):
+ if value is None:
+ return None
+ if isinstance(value, apiclient.oauth.Credentials):
+ return value
+ return pickle.loads(base64.b64decode(value))
+
+ def get_db_prep_value(self, value):
+ return base64.b64encode(pickle.dumps(value))
+
+class FlowThreeLeggedField(models.Field):
+
+ __metaclass__ = models.SubfieldBase
+
+ def db_type(self):
+ return 'VARCHAR'
+
+ def to_python(self, value):
+ print "In to_python", value
+ if value is None:
+ return None
+ if isinstance(value, apiclient.oauth.FlowThreeLegged):
+ return value
+ return pickle.loads(base64.b64decode(value))
+
+ def get_db_prep_value(self, value):
+ return base64.b64encode(pickle.dumps(value))
diff --git a/samples/django_sample/buzz/models.py b/samples/django_sample/buzz/models.py
index 91cdcce..914b586 100644
--- a/samples/django_sample/buzz/models.py
+++ b/samples/django_sample/buzz/models.py
@@ -1,48 +1,15 @@
import pickle
import base64
-import apiclient.oauth
from django.contrib import admin
from django.contrib.auth.models import User
from django.db import models
+from apiclient.ext.django import FlowThreeLeggedField
+from apiclient.ext.django import OAuthCredentialsField
+
# Create your models here.
-class OAuthCredentialsField(models.Field):
-
- __metaclass__ = models.SubfieldBase
-
- def db_type(self):
- return 'VARCHAR'
-
- def to_python(self, value):
- if value is None:
- return None
- if isinstance(value, apiclient.oauth.Credentials):
- return value
- return pickle.loads(base64.b64decode(value))
-
- def get_db_prep_value(self, value):
- return base64.b64encode(pickle.dumps(value))
-
-class FlowThreeLeggedField(models.Field):
-
- __metaclass__ = models.SubfieldBase
-
- def db_type(self):
- return 'VARCHAR'
-
- def to_python(self, value):
- print "In to_python", value
- if value is None:
- return None
- if isinstance(value, apiclient.oauth.FlowThreeLegged):
- return value
- return pickle.loads(base64.b64decode(value))
-
- def get_db_prep_value(self, value):
- return base64.b64encode(pickle.dumps(value))
-
# The Flow could also be stored in memcache since it is short lived.
class Flow(models.Model):
id = models.ForeignKey(User, primary_key=True)