0
我內省了模型中某些字段的類型,特別是我有興趣檢索RDBMS相關類型,即"VARCHAR(20)"
,而不是Django字段類(在這種情況下爲django.db.models.CharField
)。如何檢索由Django的ORM映射的相關字段的主鍵的SQL類型
但是,由於數據庫將兩個表與varchar
主鍵和integer
個pks混合在一起(所以我不能做出任何假設),所以我存在關係問題。
到目前爲止,我已經嘗試檢索與下面的代碼字段類型:
# model is a django.db.model class
for field in model._meta.get_fields(include_parents=False):
try:
# this code works for anything but relations
ft = field.db_type(connection=connection)
except:
# I'm introspecting a relation -> I would like to retrieve the field type of the related object's pk
ft = field.related_model.pk.db_type(connection=connection)
的是,有關係打交道時,失敗,出現以下錯誤:
'property' object has no attribute 'db_type'
當失敗,field.__class__
似乎是一個ManyToOneRel
對象,如果這可能有任何幫助。值得注意的是,代碼必須與新的Django 1.8 _meta
兼容。
謝謝@knbk,我非常感謝您的幫助和您提供的解釋! – furins