Django足球赛

时间:2016-03-27 23:51:21

标签: django for-loop django-models django-views django-apps

我正在Django创建一个足球网站并遇到了问题。目前我的主页和夹具页面位于不同的应用程序中。我有夹具页面工作,所以它显示管理页面添加的夹具。我想在主页上包含下一个即将到来的灯具,但是在导入数据时遇到了一些问题。

目前我的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

和我的灯具/ 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
    })

我的家/ models.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循环尝试了很多组合,但没有显示所需的信息。我的for循环适用于fixtures应用程序(在HTML中);

  {% for fixture in matches %}
      <div>
          <p>Vs {{ fixture.firstfixture.opponents }} - {{ fixture.firstfixture.match_date }}</p>
      </div>
  {% endfor %}

提前致谢

1 个答案:

答案 0 :(得分:1)

您必须将all作为一项功能;否则它只是一个可赎回的。

matches = First.objects.all()

而不是

matches = First.objects.all

编辑:您必须实际访问First实例的FK才能获得opponents

{% for fixture in matches %}
    <div>
        <p>Vs {{ fixture.firstfixture.opponents }} - {{ fixture.firstfixture.match_date }}</p>
    </div>
{% endfor %}