阅读Django模型的字段选项

msa*_*ers 1 python django

是否可以读取Django模型的字段选项?例如,使用模型:

class MyModel(models.Model):
    source_url = models.URLField(max_length=500)
    ...
Run Code Online (Sandbox Code Playgroud)

即如何以编程方式从视图或表单中读取'max_length'选项.

我目前的解决方法是定义一个单独的类属性:

class MyModel(models.Model):
    SOURCE_URL_MAX_LENGTH=500
    source_url = models.URLField(max_length=SOURCE_URL_MAX_LENGTH)
    ...
Run Code Online (Sandbox Code Playgroud)

然后我可以从任何导入models.MyModel的地方访问它,例如:

 from models import MyModel
 max_length = MyModel.SOURCE_URL_MAX_LENGTH
Run Code Online (Sandbox Code Playgroud)

sim*_*rsh 5

这样做吧.

from models import MyModel
try:
    max_length = MyModel._meta.get_field('source_url').max_length
except:
    max_length = None
Run Code Online (Sandbox Code Playgroud)