我是一个完整的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 %}
两个问题:
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
答案 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 %}