modelオブジェクトから各フィールドの型を取得する - 基本編

model作成

models.py

from django.db import models
from django.contrib.auth.models import User

class Post(models.Model):
    title = models.CharField(max_length = 50)
    author = models.ForeignKey(User)
    content = models.TextField()
    date = models.DatTimeField()
    tags = models.ManyToManyField(Tag, blank = True, null = True)

    def __unicode__(self):
        return self.title

※Tagモデルは省略しています。

型を取得

先ほど作成したPostモデルから各フィールドの型を取得します。

>>>from appname.models import *
>>>for f in Post._meta.fields:
       print f.get_internal_type()

AutoField
CharField
ForeignKey
TextField
DateTimeField
twitter 2009-07-19 03:22:36.798735

Recent Updates

URLConf Tip 01 - キャプチャの有無にかかわらず同一のviewで処理する
Markdownの入力補助"wmd"をAdmin siteで使う
ModelFormでfieldのwidgetを変更する
動的なformを作る 6 - Dynamic Inline Admin site編
Formsetsを使う3 - inlineformset_factory編
動的なformを作る 5 - django-dynamic-formset編
Formクラスからメディアを定義する
複数のmodelを結合する 2 - Proxy model編
複数のmodelを結合する 1
ModelFormでfieldの表示順番を変える
Admin siteのwidgetを個別に変更する
formfield_overridesを使ってAdmin siteのwidgetを変更する
Admin siteのlist_displayをカスタマイズする - リンク編
Admin siteのlist_displayをカスタマイズする - 基本編
Admin siteのTextareaの高さを自在に変更する - admin.py編