使用python itertools循环Django中的两个数据库表

时间:2014-02-21 18:42:01

标签: python django itertools

我正在Django建立一个项目。它就像一个博客页面,用户可以在其中发布期刊和照片。我正在尝试制作一个页面,其中所有人发布的内容按时间顺序显示。我的简化models.py如下所示。

class Writing(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=100)
    date_created = models.BigIntegerField(default=0)

class Photo(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=100)
    date_created = models.BigIntegerField(default=0)

在这种情况下,我将不得不触摸两个数据库表,然后按date_created对它们进行排序。我听说我可以使用itertools链来遍历这两个表,但我不确定如何。我应该在views.py中写什么?

1 个答案:

答案 0 :(得分:0)

在views.py中很简单,例如:

def my_view(request):
    writing = Writing.objects.filter(user=request.user).order_by('-date_created')
    photos = Photo.objects.filter(user=request.user).order_by('-date_created')
    context = {'writing': writing, 'photos': photos}
    return render(request, 'your_template.html', context)

还有一个提示你不应该使用BigIntegerField作为日期,而不是使用DateTime

date_created = models.DateTimeField(auto_now_add=True, blank=True)