2015-04-02 46 views
0

我想比較給定的數據庫表與應用程序的模型定義。django:在哪裏可以找到模型字段類型轉換爲postgres

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')] 

比較兩個不同的輸出w不容易。所以我的問題確實是:我在哪裏可以找到django模型字段類型的內部轉換爲相應的postgres字段類型?

回答

1

你可以找到這個翻譯this moduledjango.db.backends.postgresql_psycopg2.base)在DatabaseWrapper類的data_types屬性。

+0

你也知道我該如何訪問字典嗎? – LarsVegas 2015-04-02 14:12:08

+0

@LarsVegas你使用的是什麼版本的Django和Python? – 2015-04-02 14:26:43

+0

Django 1.6與python 2.7 – LarsVegas 2015-04-02 19:52:19

相關問題