def get_fields(self, field_verbose=True, value_verbose=True, fields=[], extra_fields=[], remove_fields = []):
        '''
        返回字段名及其对应值的列表
        field_verbose 为True，返回定义中的字段的verbose_name， False返回其name
        value_verbose 为True，返回数据的显示数据，会转换为choice的内容，为False， 返回数据的实际值
        fields 指定了要显示的字段
        extra_fields 指定了要特殊处理的非field，比如是函数
        remove_fields 指定了不显示的字段
        '''
        field_list = []
        for field in self.__class__._meta.fields:
            if field.name in remove_fields:
                # 不显示的字段，跳过循环
                continue

            if fields and field.name not in fields:
                # fields 不为空列表，即指定了要显示的字段，并且field.name  不再指定的列表中，跳过循环
                continue

            if field.verbose_name and field_verbose:
                value_tuple = (field.verbose_name, self.get_field_value(field, value_verbose))
            else:
                value_tuple = (field.name, self.get_field_value(field, value_verbose))

            field_list.append(value_tuple)

        for name in extra_fields:
            # 处理函数
            method = getattr(self, name)
            result = method()
            value_tuple = (name, result)
            field_list.append(value_tuple)

        return field_list
def get_fields(self, field_verbose=True, value_verbose=True, fields=[], extra_fields=[], remove_fields = []):
        '''
        返回字段名及其对应值的列表
        field_verbose 为True，返回定义中的字段的verbose_name， False返回其name
        value_verbose 为True，返回数据的显示数据，会转换为choice的内容，为False， 返回数据的实际值
        fields 指定了要显示的字段
        extra_fields 指定了要特殊处理的非field，比如是函数
        remove_fields 指定了不显示的字段
        '''
        field_list = []
        for field in self.__class__._meta.fields:
            if field.name in remove_fields:
                # 不显示的字段，跳过循环
                continue

            if fields and field.name not in fields:
                # fields 不为空列表，即指定了要显示的字段，并且field.name  不再指定的列表中，跳过循环
                continue

            if field.verbose_name and field_verbose:
                value_tuple = (field.verbose_name, self.get_field_value(field, value_verbose))
            else:
                value_tuple = (field.name, self.get_field_value(field, value_verbose))

            field_list.append(value_tuple)

        for name in extra_fields:
            # 处理函数
            method = getattr(self, name)
            result = method()
            value_tuple = (name, result)
            field_list.append(value_tuple)

        return field_list
def get_fields ( self , field_verbose = True , value_verbose = True , fields = [ ] , extra_fields = [ ] , remove_fields = [ ] ) : field_list = [ ] for field in self . __class__ . _meta . fields : if field . name in remove_fields : # 不显示的字段，跳过循环 continue if fields and field . name not in fields : # fields 不为空列表，即指定了要显示的字段，并且field.name  不再指定的列表中，跳过循环 continue if field . verbose_name and field_verbose : value_tuple = ( field . verbose_name , self . get_field_value ( field , value_verbose ) ) else : value_tuple = ( field . name , self . get_field_value ( field , value_verbose ) ) field_list . append ( value_tuple ) for name in extra_fields : # 处理函数 method = getattr ( self , name ) result = method ( ) value_tuple = ( name , result ) field_list . append ( value_tuple ) return field_list
返回字段名及其对应值的列表
        field_verbose 为True，返回定义中的字段的verbose_name， False返回其name
        value_verbose 为True，返回数据的显示数据，会转换为choice的内容，为False， 返回数据的实际值
        fields 指定了要显示的字段
        extra_fields 指定了要特殊处理的非field，比如是函数
        remove_fields 指定了不显示的字段
返回字段名及其对应值的列表 field_verbose 为True，返回定义中的字段的verbose_name， False返回其name value_verbose 为True，返回数据的显示数据，会转换为choice的内容，为False， 返回数据的实际值 fields 指定了要显示的字段 extra_fields 指定了要特殊处理的非field，比如是函数 remove_fields 指定了不显示的字段