Dynamic Proxy Models for Django
django_dynprox的Python项目详细描述
Django_dynproxy公司
===============
django的动态代理模型
使用django_dynproxy,可以通过以下方式动态修改django代理模型:
*隐藏一个或多个字段(从具体父模型)
*强制一个或多个字段(在具体父模型中不是强制字段)
如果希望在代码中使用继承,而不是在数据库中使用继承,则这可能很有用
警告:这是alpha版本。不建议用于生产用途
要求:
-----
django>;=1.4.3
安装:
-----
PIP安装django_dynproxy
用法:
---
1)创建具体模型
2)创建从具体模型派生的django代理模型
3)使用dynproxy_元类工厂定义元类并指定:
-要从代理模型中排除哪些基本字段
-要强制使用代理模型的哪些非强制基本字段
4)将“uu”元类添加到代理模型类
样品:
---
从dynproxy.utils导入dynproxy_元类工厂
旅行家型飞行员='1'
旅客类型='2'
旅行者类型=(
(旅行者式飞行员,飞行员)
(旅客类型,旅客)
)
旅客舱(模型、模型):
名字=models.charfield(最大长度=200)
姓氏=models.charfield(最大长度=200)
类型=models.charfield(最大长度=200,选项=旅行者类型)
护照号=models.charfield(最大长度=200,空白=真)
trigram=models.charfield(最大长度=200,空白=true)
pilot_category=models.foreignkey(pilotcategory,空=真,空=真)
定义Unicode(自身):
返回%s%s%(self.first_name,self.last_name)
def traveler_manager_factory(traveler_类型):
旅行经理(经理):
定义获取查询集(自身):
返回super(_travelermanager,self).get_query_set().filter(type=traveler_type)
返回TravelerManager
pilot manager=traveler_manager_工厂(traveler_type_pilot)
旅客经理=旅客经理工厂(旅客类型)
pilotmetaclass=dynproxy_元类工厂(
必选字段=['trigram','pilot_category'],
要排除的字段=[“护照号码”]
)
passengermetaclass=dynproxy_元类工厂(
必选字段=['护照号码',
要排除的字段=['trigram','pilot_category']
)
驾驶员(旅客):
对象=PilotManager()
类元:
代理=真
旅客(旅客)等级:
对象=PassengerManager()
类元:
代理=真
===============
django的动态代理模型
使用django_dynproxy,可以通过以下方式动态修改django代理模型:
*隐藏一个或多个字段(从具体父模型)
*强制一个或多个字段(在具体父模型中不是强制字段)
如果希望在代码中使用继承,而不是在数据库中使用继承,则这可能很有用
警告:这是alpha版本。不建议用于生产用途
要求:
-----
django>;=1.4.3
安装:
-----
PIP安装django_dynproxy
用法:
---
1)创建具体模型
2)创建从具体模型派生的django代理模型
3)使用dynproxy_元类工厂定义元类并指定:
-要从代理模型中排除哪些基本字段
-要强制使用代理模型的哪些非强制基本字段
4)将“uu”元类添加到代理模型类
样品:
---
从dynproxy.utils导入dynproxy_元类工厂
旅行家型飞行员='1'
旅客类型='2'
旅行者类型=(
(旅行者式飞行员,飞行员)
(旅客类型,旅客)
)
旅客舱(模型、模型):
名字=models.charfield(最大长度=200)
姓氏=models.charfield(最大长度=200)
类型=models.charfield(最大长度=200,选项=旅行者类型)
护照号=models.charfield(最大长度=200,空白=真)
trigram=models.charfield(最大长度=200,空白=true)
pilot_category=models.foreignkey(pilotcategory,空=真,空=真)
定义Unicode(自身):
返回%s%s%(self.first_name,self.last_name)
def traveler_manager_factory(traveler_类型):
旅行经理(经理):
定义获取查询集(自身):
返回super(_travelermanager,self).get_query_set().filter(type=traveler_type)
返回TravelerManager
pilot manager=traveler_manager_工厂(traveler_type_pilot)
旅客经理=旅客经理工厂(旅客类型)
pilotmetaclass=dynproxy_元类工厂(
必选字段=['trigram','pilot_category'],
要排除的字段=[“护照号码”]
)
passengermetaclass=dynproxy_元类工厂(
必选字段=['护照号码',
要排除的字段=['trigram','pilot_category']
)
驾驶员(旅客):
对象=PilotManager()
类元:
代理=真
旅客(旅客)等级:
对象=PassengerManager()
类元:
代理=真