質問

そこで、私は 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 そのターンは (a 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 そのゲームのオブジェクト。

Meta クラスを追加する必要がある場合があります。 Turn 新しいモデルから古いモデルまで順番に注文します。

Class Meta:
    ordering = ['-generated']

それから、 {{game.turn_set.all.0}} そのゲームの最新ターンの Unicode 表現を返す必要があります。 {{game.turn_set.all.0.generated}} 関連するものを返します datetime 物体。

注記:これはテストされていないコードです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top