所以,我一直在noodling关于Django的通用视图,特别是object_list视图。我有这个在我的urls.py

from django.conf.urls.defaults import *
from django.views.generic import list_detail
from diplomacy.engine.models import Game

game_info = {
    "queryset": Game.objects.filter(state__in=('A', 'P')),
    "template_object_name": "game",
    }

urlpatterns = patterns('',
    (r'^$', list_detail.object_list, game_info),
)

和这一点,它会相当粗糙的模板:

{% block content %}
  <table>
    <tr>
      <th>Name</th>
      <th>Turn</th>
      <th>Last Generated</th>
    </tr>
    {% for game in game_list %}
    <tr>
      <td>{{ game.name }}</td>
    </tr>
    {% endfor %}
  </table>
{% endblock %}

我正在寻找的是包括在该视图中的Unicode表示和generated字段(DateTimeField)的最佳习惯的方法从最近Turn指向当前Game在环基于generated的价值。 Turn.game是指向Game转弯属于字段(ForeignKey)。

<强>更新

Turn模型如下:

SEASON_CHOICES = (
    ('S', 'Spring'),
    ('SR', 'Spring Retreat'),
    ('F', 'Fall'),
    ('FR', 'Fall Retreat'),
    ('FB', 'Fall Build')
    )

class Turn(models.Model):
    game = models.ForeignKey(Game)
    year = models.PositiveIntegerField()
    season = models.CharField(max_length=2, choices=SEASON_CHOICES)
    generated = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return "%s %s" % (self.season, self.year)

Game模型没有明显从方式改变我指定它在此其他问题

有帮助吗?

解决方案

如果Turn.game指向相关联Game对象,然后{{game.turn_set.all}}应该返回集合Turn对象的该游戏。

您可能需要一个元类添加到Turn模型命令从最新到最旧的。

Class Meta:
    ordering = ['-generated']

然后,{{game.turn_set.all.0}}应返回用于该游戏的最新转Unicode表示,和{{game.turn_set.all.0.generated}}将返回相关datetime对象。

注意:这是未测试的代码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top