我需要的是从字段中返回所有参数:
示例:
Class MyClass(models.Model):
field = models.Charfield(blank = True, null = True)
我想返回" field"的所有参数。来自" MyClass"。
这里,参数应为空白且为空。
答案 0 :(得分:3)
对于模型MyModel
class MyModel(models.Model):
my_field = models.Charfield(max_length=100)
您可以使用Meta api获取该字段。
>>> field = MyModel._meta.get_field('my_field')
然后,您可以使用deconstruct
方法获取在实例化时传递给字段的kwargs。
>>> name, path, args, kwargs = field.deconstruct()
>>> print(kwargs)
{u'max_length': 100}
答案 1 :(得分:1)
我没有真正达到获取参数的目的,但我认为您可以使用' vars '。它是'__dict__'的包装。 由于django模型字段具有'__dict__'属性,' vars '将允许您访问字段的参数,如下所示:
def has_parameter(field_name, parameter_name):
parameter_dict = vars(field_name)
return not parameter_dict.get(parameter_name) == None
如果等于None意味着它尚未设置,否则它已设置或具有默认值。
在你的情况下:>>> has_parameter(field_name,'through')