有些桌子混在一起

时间:2010-01-13 16:09:20

标签: python django

我的数据库中有2个不同的表。它们有一些共同的变量,有些不同。例如:

表1:

  • ID
  • 日期
  • 姓名
  • 地址
  • 传真

表2:

  • ID
  • 日期
  • 姓名
  • 电子邮件
  • 电话号码

我希望按日期和时间显示数据。 ID,但来自两个表。例如,首先显示的是来自第一个表的最新记录,但第二个将是来自第一个表之后发布的另一个表的记录。

希望大家都明白,对不起我的英语。

干杯。

1 个答案:

答案 0 :(得分:0)

从两个模型中选择条目,而不是将它们放入单个列表中并对它们进行排序。像那样:

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>'