Некоторые таблицы смешаны вместе - PullRequest
1 голос
/ 13 января 2010

У меня есть две разные таблицы в моей базе данных. У них есть некоторые общие переменные и некоторые разные. Например:

Table1:

  • ID
  • Дата
  • Имя
  • Адрес
  • Факс

Table2:

  • ID
  • Дата
  • Имя
  • электронная почта
  • Номер телефона

Я хочу отображать данные вместе, отсортированные по дате и идентификатору, но из обеих таблиц. Например, первая отображаемая будет самой новой записью из первой таблицы, а вторая будет записью из другой таблицы, размещенной сразу после первой.

Надеюсь, все понимают, извините за мой английский.

Приветствие.

1 Ответ

0 голосов
/ 13 января 2010

Выберите записи из обеих моделей, затем поместите их в один список и отсортируйте их. Вот так:

result = (list(first_query) + list(second_query))
result.sort(cmp=foo)
return result

где foo - функция, которая используется для сравнения двух элементов:

def foo(a, b):
  if a.date > b.date:
    return 1
  if a.date < b.date:
    return -1
  if a.date == b.date:
    if a.id > b.id:
      return 1
    if a.id < b.id:
      return -1
    return 0

И для отображения:

<table>
{% for object in result %}
  {{ object.render_table }}
{% endfor %}
</table>

и в моделях (только одна таблица):

class Table1(models.Model):

  ..

  def render_table(self):
    return '<tr><td>table1</td></tr>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...