mirror of
				https://github.com/django/django.git
				synced 2025-10-30 00:56:09 +00:00 
			
		
		
		
	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
 |