Добрый день.
Создал вьюху:
history = []
calls = Call.objects.filter(contragent=contragent).exclude(realy_datetime=None)
meetings = Meeting.objects.filter(contragent=contragent).exclude(realy_datetime=None)
emails = Email.objects.filter(contragent=contragent)
faxs = Fax.objects.filter(contragent=contragent)
for cc in meetings:
history.append({'event': cc, 'type': 'm', 'time': cc.realy_datetime})
for cc in calls:
history.append({'event': cc, 'type': 'c', 'time': cc.realy_datetime})
for cc in emails:
history.append({'event': cc, 'type': 'e', 'time': cc.datetime})
for cc in faxs:
history.append({'event': cc, 'type': 'f', 'time': cc.datetime})
def sortByTime(el):
return el['time']
context['history'] = history.sort(key=sortByTime)
Где:
class Email(models.Model):
contragent = models.ForeignKey(Contragents, verbose_name=u'Контрагент')
contact_person = models.ForeignKey(Staff, verbose_name=u'Контактное лицо')
datetime = models.DateTimeField(auto_now_add=True, verbose_name=u'Время отправки')
theme = models.CharField(max_length=756, verbose_name=u'Тема письма', blank=True, null=True)
content = models.TextField(verbose_name=u'Содержимое письма')
email = models.EmailField(verbose_name=u'Email получателя', blank=True, null=True)
class Fax(models.Model):
contragent = models.ForeignKey(Contragents, verbose_name=u'Контрагент')
datetime = models.DateTimeField(verbose_name=u'Время отправки')
phone = models.CharField(max_length=100, verbose_name=u'Телефон получателя')
files = models.ManyToManyField(Attachment, verbose_name=u'Вложенные документы', blank=True, null=True)
class Meeting(models.Model):
contragent = models.ForeignKey(Contragents, verbose_name=u'Контрагент')
contact_person = models.ForeignKey(Staff, verbose_name=u'Контактное лицо', blank=True, null=True)
probably_datetime = models.DateTimeField(verbose_name=u'Предполагаемое время встречи', blank=True, null=True)
goal = models.TextField(verbose_name=u'Цель встречи', blank=True, null=True)
realy_datetime = models.DateTimeField(verbose_name=u'Реальное время встречи', blank=True, null=True)
result = models.TextField(verbose_name=u'Результат', blank=True, null=True)
class Call(models.Model):
contragent = models.ForeignKey(Contragents, verbose_name=u'Контрагент')
contact_person = models.ForeignKey(Staff, verbose_name=u'Контактное лицо', blank=True, null=True)
probably_datetime = models.DateTimeField(verbose_name=u'Предполагаемое время звонка', blank=True, null=True)
realy_datetime = models.DateTimeField(verbose_name=u'Реальное время звонка', blank=True, null=True)
phone = models.ForeignKey(Contact, verbose_name=u'Телефон', blank=True, null=True)
При выполнении вьюхи получаю что:
history=[{'event': <Email: Письмо в компанию Средняя общеобразовательная школа №1 городского округа город Октябрьский Республики Башкортостан>,
'time': datetime.datetime(2013, 9, 19, 15, 5, 31, tzinfo=<UTC>),
'type': 'e'},
{'event': <Fax: Факс в компанию Средняя общеобразовательная школа №1 городского округа город Октябрьский Республики Башкортостан>,
'time': datetime.datetime(2013, 10, 11, 16, 53, 10, tzinfo=<UTC>),
'type': 'f'}]
А вот
context['history'] = None
Почему так?
Делал подобное в других ситуациях, все работало хорошо. Единственным существенным отличием было то что упорядочивал я там не по датевремени, как тут, а по целому числу. Но ведь датавремя имеет операцию сравнения. Так что же не так?