Python 是否可能获取字段的所有参数

Python 是否可能获取字段的所有参数,python,django,django-models,Python,Django,Django Models,我需要的是从字段返回所有参数: 例如: Class MyClass(models.Model): field = models.Charfield(blank = True, null = True) 我想从MyClass返回字段的所有参数 这里,参数应该是空的和空的。我并没有真正理解获取参数的目的,但我认为您可以使用“vars”。它有点像是“dict”的包装。 由于django模型字段具有“\uuuuu dict\uuuuuuu”属性,“vars”将允许您访问字段的参数,如下所示:

我需要的是从字段返回所有参数:

例如:

Class MyClass(models.Model):
    field = models.Charfield(blank = True, null = True)
我想从MyClass返回字段的所有参数


这里,参数应该是空的和空的。

我并没有真正理解获取参数的目的,但我认为您可以使用“vars”。它有点像是“dict”的包装。 由于django模型字段具有“\uuuuu dict\uuuuuuu”属性,“vars”将允许您访问字段的参数,如下所示:

def has_parameter(field_name, parameter_name):
    parameter_dict = vars(field_name)
    return not parameter_dict.get(parameter_name) == None
如果等于“无”,则表示尚未设置,否则将设置或具有默认值


在您的例子中:>>>>具有_parameterfield _name,'through'

我并没有真正理解获取参数的目的,但我认为您可以使用'vars'。它有点像是“dict”的包装。 由于django模型字段具有“\uuuuu dict\uuuuuuu”属性,“vars”将允许您访问字段的参数,如下所示:

def has_parameter(field_name, parameter_name):
    parameter_dict = vars(field_name)
    return not parameter_dict.get(parameter_name) == None
如果等于“无”,则表示尚未设置,否则将设置或具有默认值

在您的情况下:>>>>具有模型MyModel的\u参数字段\u名称,'through'

您可以使用

然后,可以使用deconstruct方法获取实例化字段时传递给该字段的KWARG

>>> name, path, args, kwargs = field.deconstruct()
>>> print(kwargs)
{u'max_length': 100}
对于模型MyModel

您可以使用

然后,可以使用deconstruct方法获取实例化字段时传递给该字段的KWARG

>>> name, path, args, kwargs = field.deconstruct()
>>> print(kwargs)
{u'max_length': 100}

你是指你设置的所有参数还是所有参数?你试过什么?我可以问一下,为什么需要它们吗?对,事实上,我添加了through参数,并且我需要在一些视图中检查哪些字段具有through参数。当然,这使用了重写模型?因此,具有该参数的模型就是您拥有的createdYes,它是一个被覆盖的模型。但是我不明白如何检查我的字段是否使用了through参数。您是指您设置的所有参数还是所有参数?你试过什么?我可以问一下,为什么需要它们吗?对,事实上,我添加了through参数,并且我需要在一些视图中检查哪些字段具有through参数。当然,这使用了重写模型?因此,具有该参数的模型就是您拥有的createdYes,它是一个被覆盖的模型。但是我不明白如何检查我的字段是否使用through参数。要继续这个示例,它应该是:field=MyModel.\u meta.get\u field'my\u field'。要继续这个示例,它应该是:field=MyModel.\u meta.get\u field'my\u field'。