2017-12-27 17 views
-1

장고 모델에 대해 특별한 월을 설정하기 위해 추가 필드가 필요했습니다. 이것은 튜플 세트의 선택 속성을 사용하여 수행되었습니다.인덱스로 터플의 튜플 값을 얻습니다.

class Timeline(models.Model): 

    MONTHS = (
     (1, _("January")), 
     (2, _("February")), 
     (3, _("March")), 
     (4, _("April")), 
     (5, _("May")), 
     (6, _("June")), 
     (7, _("July")), 
     (8, _("August")), 
     (9, _("September")), 
     (10, _("October")), 
     (11, _("November")), 
     (12, _("December")), 
    ) 

    tldate_mth = models.IntegerField(_("Month"), choices=MONTHS, default=1) 

관리자 섹션에서 이것은 환상적으로 작동합니다.

# ... 
def to_string(self): 
    return "%s (%s/%d)" % (self.title, self.MONTHS.index(self.tldate_mth), self.tldate_yr) 

을하지만 내가 메시지를 가지고 : 지금은 내 템플릿에 달 출력하고자 "tuple.index (X)를 : 튜플에없는 X". 내가 뭘 잘못 했니?

답변

1

장고는 바로 가기를 제공합니다 : self.get_tldate_mth_display().

(코드가 실패한 이유는 그게 전혀 .index()인데, self.MONTHS[self.tldate_mth-1][1]을 수행해야하지만 이미 기본 제공 방식이있는 경우이를 수행 할 필요가 없습니다.)

0

이 시도 : 선택 필드에 대한 터플 (이 경우에 1-12 값)의

def to_string(self): 
    return "%s (%s/%d)" % (self.title, [month[0] for month in self.MONTHS].index(self.tldate_mth), self.tldate_yr) 

장고 저장 첫 번째 값.