如何从django date field

时间:2018-04-18 21:16:53

标签: django

我已将django模型中的月份字段定义为:

from django.utils.dates import MONTHS

class Month(models.Model):
    month = models.IntegerField(choices=MONTHS.items(), blank=True, null=True)

    def __str__(self):
        return str(self.month)

在我尝试获取月份输出的那一刻,我得到了整数月份,如1,2,3 ...... 12.我怎样才能获得像1月,2月等文字或人类可读的月份我可以看到它,因为我可以在管理标签中看到它们。

修改

有人来这里提出这样的问题。我可以使用内置于django中的get_month_display() method来使其正常工作。

months_list = Month.objects.all()
for month in month_list:
    print(month.get_month_display())

2 个答案:

答案 0 :(得分:0)

您可以将choices的元组列表传递给models.IntegerField

choices = [(k, v) for k, v in MONTHS.items()]
class Month(models.Model):
    month = models.IntegerField(choices=choices, blank=True, null=True)

答案 1 :(得分:0)

您可以使用Calendar Python库

calendar.month_name[4] - > ' 4月'

参考here