首页 > 解决方案 > 字符串到日期字段的转换

问题描述

请耐心等待,因为以前也有人问过类似的问题。我只是不知道如何正确应用它。我有一个名为“首次亮相”的 Charfield(又名字符串)形式的字段,它以 2019-06-19 的形式表示日期。

我希望它采用这种格式,而不是 06/19/2019 或 6/19/2019。有人可以帮我解决这个问题,以便我可以在我的模板中以这种格式调用它。

#MODELS
class PlayerLkup(models.Model):
    playerid = models.CharField(db_column='playerID', primary_key=True, max_length=255)
    birthmonth = models.IntegerField(db_column='birthMonth', blank=True, null=True)
    birthday = models.IntegerField(db_column='birthDay', blank=True, null=True)
    weight = models.IntegerField(blank=True, null=True)
    debut = models.CharField(max_length=255, blank=True, null=True)    # this is the field I'm working with



#VIEWS
from django.shortcuts import render
from .models import PlayerLkup    

def player_info(request, playerid):
    playerdata = PlayerLkup.objects.get(playerid=playerid)
    battingstats = playerdata.hittingstats_set.all()          #Hittingstats table has a foreign key that references PlayerLkup table
    return render(request, 'careerstats/playerpage.html', {'playerdata': playerdata, 'battingstats': battingstats})



#TEMPLATE
{{ playerdata.debut }} # Unformatted call of debut

标签: pythondjango

解决方案


在您的视图函数中,使用字符串split()函数将首次亮相分成单独的年、月和日值,然后将它们重新组合成您想要的格式。

year, month, day = playerdata.debut.split("-")
new_debut = "%s/%s/%s" % (month, day, year)

然后将这个新值传递到您的模板渲染中:

return render(request, 'careerstats/playerpage.html', {'playerdata': playerdata, 'battingstats': battingstats}, 'new_debut': new_debut)

最后,将其显示在模板中:

{{ new_debut }}

推荐阅读