문제

그래서 나는 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 %}

내가 찾고있는 것은이 관점에서 유니 코드 표현을 포함하는 최고의 관용적 방법입니다. generated 필드 (a 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 그 게임의 개체.

메타 클래스를 추가해야 할 수도 있습니다. Turn 최신부터 가장 오래된 모델.

Class Meta:
    ordering = ['-generated']

그 다음에, {{game.turn_set.all.0}} 해당 게임의 최신 턴에 대한 유니 코드 표현을 반환해야하며 {{game.turn_set.all.0.generated}} 관련을 반환합니다 datetime 물체.

참고 : 이것은 테스트되지 않은 코드입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top