2012-11-23 3 views
1

내가 모델을 다음했다고 가정 할 수 있습니다 :django - 모델 클래스를 갖는 모든 필드, 그들의 유형 및 매개 변수의 목록을 가져 오는 방법?

class Note(models.Model): 
    user = models.ForeignKey(User) 
    pub_date = models.DateTimeField() 
    title = models.CharField(max_length=200) 
    body = models.TextField() 

    def __unicode__(self): 
     return self.title 

나는이 같은 일을하는 함수가 필요 : 나는 django.model.field의 인스턴스를 나열하는 방법을 모르는

print inspectModelClass(Note) 

>>> {user:('ForeignKey', {null:False, unique:False, blank:False...}), pub_date:('DateTimeField',{null:False, unique:False,...})...} 

을, 이름, 올바른 유형 (BooleanField, CharField 등) 및 해당 속성 (null, unique, max_chars 등)을 가져 오는 방법.

도와 주시겠습니까?

내가 필요한 이유는 django-haystack에 대한 색인 클래스를 동적으로 만들 수있는 기능을 가지고 있기 때문입니다.

답변

3

메타 데이터 클래스를 사용하여 모델 필드 속성을 쉽게 얻을 수 있습니다.

MyModel._meta.fields 

필드 목록을 반환하십시오. 이 목록의 모든 필드는 잘 알려진 특성 (name, verbose_name 등)가 단지 정의 된 필드가 나열 나는 아이 모델이 오늘을 사용하고, 그 경우 MyModel._meta.local_fields에 유용했다

+2

하위 모델에서 부모 모델에서 상속 된 필드는 제외됩니다. – odedbd

관련 문제