我正在Django创建一个足球网站,遇到了一个问题。目前我的主页和固定装置页面在不同的应用程序中。我让fixture页面工作,所以它显示管理页面添加的fixture。我想在主页上包括下一个即将到来的固定节目,但在导入数据时遇到了一些问题。
目前我的fixtures/models.py文件看起来像这个
from django.db import models
from django.utils import timezone
class Fixture(models.Model):
author = models.ForeignKey('auth.User')
opponents = models.CharField(max_length=200)
match_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.match_date = timezone.now()
self.save()
def __str__(self):
return self.opponents
我的fixture/views.py看起来像
from django.shortcuts import render_to_response
from django.utils import timezone
from fixtures.models import Fixture
def games(request):
matches = Fixture.objects.filter(match_date__gte=timezone.now()).order_by('match_date')
return render_to_response('fixtures/games.html', {'matches':matches
})
我的家/型号.py看起来像:
from django.utils import timezone
from django.db import models
from fixtures.models import Fixture
class First(models.Model):
firstfixture = models.ForeignKey('fixtures.Fixture')
和home/views.py:
from django.utils import timezone
from home.models import First
def index(request):
matches = First.objects.all()
return render_to_response('home/index.html', {'matches':matches
})
我已经为for循环尝试了许多组合,但没有显示所需的信息。适用于fixtures应用程序的for循环是(HTML);
{% for fixture in matches %}
<div>
<p>Vs {{ fixture.firstfixture.opponents }} - {{ fixture.firstfixture.match_date }}</p>
</div>
{% endfor %}
提前感谢
必须将all
作为函数调用;否则它只是一个可调用的。
matches = First.objects.all()
而不是
matches = First.objects.all
EDIT:您必须实际访问First实例的FK才能获得opponents
。
{% for fixture in matches %}
<div>
<p>Vs {{ fixture.firstfixture.opponents }} - {{ fixture.firstfixture.match_date }}</p>
</div>
{% endfor %}