python - 如何从 django 的 db 模型中获取字段类型字符串

标签 python django django-models

我正在做以下事情:

model._meta.get_field('g').get_internal_type

返回以下内容:

<bound method URLField.get_internal_type of <django.db.models.fields.URLField: g>>

我只想知道这个字段是 "URLField"。我如何从这个输出中提取它?

注意:我这样做是为了对字段进行验证。例如,如果一个 url ,我想检查它是否格式正确。

最佳答案

如果你这样做:

model._meta.get_field('g').get_internal_type()

你不可能得到那个结果。

相反,您正在这样做:

model._meta.get_field('g').get_internal_type

正如 here 所解释的那样, 不调用方法,只是将方法引用为绑定(bind)的方法对象。返回值不是该绑定(bind)方法对象的一部分,它是由方法在调用方法时创建的。所以,你必须调用它。所以你需要括号。

关于python - 如何从 django 的 db 模型中获取字段类型字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20081924/

相关文章:

python - 上下文变量不会显示在 Django 模板中

python - Django get_model 对于 Mezzanine BlogPost 模型返回 None

Django Admin - 按自定义方法排序

python - 如何使用日志库? (用Python实现日志记录)

python - 如何使用 PyCharm 在 Django 测试中运行 celery

python - 如何解码 REG_BINARY 值 HKLM\Software\Microsoft\Ole\DefaultLaunchPermission 以查看哪些用户拥有权限?

python - aiohttp 中间件和更新请求的 url

django 测试 RequestFactory 不包含 request.user

jquery - 使用 Ajax jQuery 提交 Django 表单的简单方法

python - 如何将一个字段从一个模型移动到另一个模型,同时仍然保留数据?