Выберите записи из обеих моделей, затем поместите их в один список и отсортируйте их. Вот так:
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>'