django:在哪里可以找到模型字段类型转换为postgres

时间:2015-04-02 13:08:41

标签: python django django-models

我试图将给定数据库的表与应用程序的模型定义进行比较。

class SewManAbstract(models.Model):
   """
   """
   display_name = models.CharField(max_length=255, blank=True)
   code = models.CharField(
       max_length=100, blank=True,
       help_text='txt')
   length = models.FloatField(_("length"), null=True, help_text='input')

当我直接查询数据库中的元数据时,我得到了

meta = ([u'display_name', u'character varying(255)', 
     u'code', u'character varying(100)', 
     u'length', u'double precision']) 

当我使用django的内置功能时

FieldNameType = collections.namedtuple(
    "FieldNameType", 'field_name, field_type')
tmp = []
for field in model._meta.local_fields:
    fn = FieldNameType(
        field.name, model._meta.
            get_field(field.name).get_internal_type())
    tmp.append(fn)

我得到了

[FieldNameType(field_name='display_name', field_type=u'CharField'), 
FieldNameType(field_name='code', field_type=u'CharField'),
FieldNameType(field_name='length', field_type=u'FloatField')]

比较两种不同的输出并不容易。所以我的问题是:在哪里可以找到django的模型字段类型的内部翻译到相应的postgres字段类型?

1 个答案:

答案 0 :(得分:1)

您可以在 DatabaseWrapper data_types中的this module django.db.backends.postgresql_psycopg2.base )中找到此翻译属性。