2

1.) 私は次の models.py 定義を持っています:

    from django.db import models
    from datetime import date

    class Author(models.Model):
        author  = models.CharField(max_length=20)
        def __unicode__(self):
            return '%s' % (self.author)

    class SystemA(models.Model):
        author      = models.ForeignKey(Author)
        date        = models.DateField()
        system      = models.CharField(max_length=20, blank=False, default="System A")
        description = models.CharField(max_length=300)
        status = models.CharField(max_length=6)
        def __unicode__(self):
            return '%s, %s, %s, %s, %s' % (self.date, self.author, self.system, self.description, self.status)

    class SystemB(models.Model):
        author      = models.ForeignKey(Author)
        date        = models.DateField()
        system      = models.CharField(max_length=20, blank=False, default="System B")
        description = models.CharField(max_length=300)
        status = models.CharField(max_length=6)
        def __unicode__(self):
            return '%s, %s, %s, %s, %s' % (self.date, self.author, self.system, self.description, self.status)

2.) この admin.py 定義:

    from acc.models import SystemA, SystemB, Author
    from django.contrib import admin

    admin.site.register(SystemA)
    admin.site.register(SystemB)

3.) そして、これは私の views.py 定義です:

    from django.http import HttpResponse
    from acc.models import SystemA, SystemB
    from django.template import Context, loader
    from itertools import chain
    from operator import attrgetter

    def index(request):
      a_list = SystemA.objects.all().order_by('-date')
      b_list = SystemB.objects.all().order_by('-date')
      result_list = sorted(
        chain(a_list, b_list),
        key=attrgetter('date'))
      t = loader.get_template('index.html')
      #c = Context({'result_list': result_list,})
      c = Context({'a_list': a_list,'b_list': b_list,})
      return HttpResponse(t.render(c))

4.) 最後に、静的 HTML ページ (index.html) を表示するテンプレートは次のように定義されます。

    {% if a_list %}
    <ul>
    {% for a in a_list %}
    <li>{{a.date}} | {{a.author}} | {{a.system}} | {{a.description}} | {{a.status}}</li>
    {% endfor %}
    </ul>
    {% endif %}

    {% if b_list %}
    <ul>
    {% for b in b_list %}
    <li>{{b.date}} | {{b.author}} | {{b.system}} | {{b.description}} | {{b.status}}</li>
    {% endfor %}
    </ul>
    {% endif %}

コードは機能しており、管理インターフェイスからいくつかのデータを入力しました。結果:

April 18, 2013 | owta | System A | All jobs went bananas! | FAILED
April 17, 2013 | rash | System A | All Well | OK

April 18, 2013 | owta | System B | All jobs went bananas! | FAILED
April 17, 2013 | rash | System B | All well | OK

私の目的は、モデル (SystemA/SystemB) とは別に、以下のソート順で結果を日付でソートすることです。

April 17, 2013 | rash | System A | All Well | OK
April 17, 2013 | rash | System B | All well | OK
April 18, 2013 | owta | System A | All jobs went bananas! | FAILED
April 18, 2013 | owta | System B | All jobs went bananas! | FAILED

私は成功せずにこれを整理しようとして半週間を費やしました。私は Django の初心者です。いくつかの助けをいただければ幸いです!ありがとう。

4

1 に答える 1