from django.db import models
import inspect
# Create your models here.
#在做Django图形化开发表的过程中,需要能够自动列出标准库、可用数据类型,可用以下方法
# 从Object的初始化函数中获取初始化参数
# int_signature = inspect.signature(models.fields.Field.__init__)
# parameters = int_signature.parameters
# parm_list = [ param for param in parameters ]
# print(parm_list)
print('next\n')
# 从models.fields.__all__获取Django Modes所有字段类型
Defined_file_list = models.fields.__all__
def _get_filed_structure(filed):
objs = models.fields
# attribute_name = 'Field'
# 动态获取属性
value = getattr(objs, filed, 'Method not found')
# print(type(value))
# 初始化了一个根据动态属性传进来的对象
# 对象列表中有一些List类型,需要先处理掉
if isinstance(value, list):
print(value)
else:
obj=value()
fields = obj.__dict__
print(fields)
for index in range(len(Defined_file_list)):
# print(Defined_file_list[index])
field = Defined_file_list[index]
_get_filed_structure(field)
# 获取所有初始化字段,包括继承自父类的字段
def get_all_attributes(obj):
attrs = {}
for cls in obj.__class__.__mro__:
if '__dict__' in cls.__dict__:
attrs.update(cls.__dict__)
if cls == object:
break
return attrs
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
956

被折叠的 条评论
为什么被折叠?



