mirror of
https://github.com/django/django.git
synced 2024-11-18 15:34:16 +00:00
df41b5a05d
Thanks Aymeric Augustin for shepherding the DEP and patch review. Thanks Marten Kenbeek and Tim Graham for contributing to the code. Thanks Tom Christie, Shai Berger, and Tim Graham for the docs.
39 lines
842 B
Python
39 lines
842 B
Python
import base64
|
|
|
|
|
|
class Base64Converter:
|
|
regex = r'[a-zA-Z0-9+/]*={0,2}'
|
|
|
|
def to_python(self, value):
|
|
return base64.b64decode(value)
|
|
|
|
def to_url(self, value):
|
|
return base64.b64encode(value).decode('ascii')
|
|
|
|
|
|
class DynamicConverter:
|
|
_dynamic_to_python = None
|
|
_dynamic_to_url = None
|
|
|
|
@property
|
|
def regex(self):
|
|
return r'[0-9a-zA-Z]+'
|
|
|
|
@regex.setter
|
|
def regex(self):
|
|
raise Exception("You can't modify the regular expression.")
|
|
|
|
def to_python(self, value):
|
|
return type(self)._dynamic_to_python(value)
|
|
|
|
def to_url(self, value):
|
|
return type(self)._dynamic_to_url(value)
|
|
|
|
@classmethod
|
|
def register_to_python(cls, value):
|
|
cls._dynamic_to_python = value
|
|
|
|
@classmethod
|
|
def register_to_url(cls, value):
|
|
cls._dynamic_to_url = value
|