汎用リストビューの関連オブジェクトから情報を取得する
-
13-09-2019 - |
質問
そこで、私は 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
物体。
注記:これはテストされていないコードです。
所属していません StackOverflow