如何从数据库中检索时间日期并在模板中显示?

时间:2011-02-04 19:19:23

标签: python database django

我是一个完整的Python和Django noob,所以任何帮助都表示赞赏。这就是我的模型:

class Matches(models.Model):
    id = models.AutoField(primary_key=True)
    date = models.DateTimeField()
    court = models.ForeignKey(Courts)

class Participants(models.Model):
    id = models.AutoField(primary_key=True)
    match = models.ForeignKey(Matches)
    userid = models.ForeignKey(User)
    games_won = models.IntegerField()

这就是我的观点:

def index(request):
    latest_matches_list = Matches.objects.all()[:5]
    return render_to_response('squash/index.html', {'latest_matches_list': latest_matches_list})
    return HttpResponse(output)

我的模板:

{% if latest_matches_list %}
    {% for matches in latest_matches_list %}
        {{ match.id }}
    {% endfor %}
{% else %}
    <p>No matches are available.</p>
{% endif %}

两个问题:

  • 当我在shell控制台中执行Matches.objects.all()时,它返回:[<Matches: Matches object>]。为什么不打印出id和日期?
  • 在模板文件中,我最初尝试打印出Matches的id,但它似乎没有用。 {{ match.id }}需要什么变量。目标是每场比赛打印出以下内容:
  • [matchid]    [date]    [time]     [player1_wins]  [player2_wins]
    1            1-1-2011  20:00      6            8
    

    1 个答案:

    答案 0 :(得分:1)

    1:如何知道您可能拥有的所有字段中的ID和日期?

    您可以通过定义__unicode__来定义对象在打印时返回的内容 http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.unicode

    # ... model class
    
    def __unicode__(self):
        return "%s %s" % (self.id, self.date)
    

    2:在您的模板中,您使用变量latest_matches_list迭代matches,但使用未定义的{{ match.id }}。使用{{ matches.id }}

    {% for matches in latest_matches_list %}
        {{ match.id }} <!-- not defined -->
        {{ matches.id }} <!-- this is your variable -->
    {% endfor %}