2010-08-09 3 views
15

이 후속 조치는 question입니다. 부모 모델에서 인라인으로 정의 된 속성을 어떻게 표시합니까? 예를 들어,이 모델은 다음과 같습니다.Django Admin : 모델에 정의 된 속성을 인라인으로 표시하는 방법?

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True, primary_key=True, related_name='profile') 
    ... 
    @property 
    def age(self): 
     if self.birthday is None: 
      return None 

     td = datetime.date.today() - self.birthday 
     return td.days/365 

질문 : 사용자의 인라인에 '나이'를 표시하려면 어떻게해야합니까?

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 
    fk_name = 'user' 
    max_num = 1 
    fieldsets = [ 
     ('Demographics', {'fields': ['birthday', 'age']}), 
    ] 

내가 '() 시대'를 포함하여이 같은 몇 가지를 시도했습니다, 인라인에 대한 'get_age'게터를 정의하는 등 그들은이 오류의 일부 버전에서 결과 : 이것은 내가 무엇을 가지고 :

ImproperlyConfigured: 'UserProfileInline.fieldsets[1][1]['fields']' refers to field 'age' that is missing from the form. 

답변

25

튜플에 필드도 추가합니다.

참고 이것은 장고 1.2 이상에서만 작동합니다.

+0

위에 표시된 것처럼 UserProfileInline 클래스에 readonly_fields = [ 'age',]를 추가하면 오류가 발생하지 않지만 admin에는 아무 것도 표시되지 않습니다. 내가 놓친 게 있니? 난 장고 1.2에있어,하지만 주위에 내 길을 배우고 - 도와 줘서 고마워. – Joe

+0

이상하게 들리 겠지만 작동해야합니다. 서버가 다시 시작 되었습니까? –

+2

장고 1.6에서 이것을 성공적으로 사용했습니다. – dustinfarris