簡體   English   中英

按索引獲取元組中的元組值

[英]Get a tuple value in a tuple by index

對於 Django 模型,我需要一個額外的字段來設置一個特殊的月份。 這是通過選擇屬性一個元組集完成的:

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 not in tuple”。 我做錯了什么?

Django 為您提供了一個快捷方式: self.get_tldate_mth_display()

(你的代碼失敗的原因是這根本不是.index()所做的;你應該只做self.MONTHS[self.tldate_mth-1][1] ;但是,正如我所說,沒有必要做當已經有內置方式時。)

嘗試這個:

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

Django 只為選擇字段存儲元組的第一個值(在本例中為值 1-12)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM