如何按时间过滤两个模型对象?

时间:2011-05-24 01:08:44

标签: python django django-models django-templates django-views

models.py:

class Post(models.Model):
  msg=models.TextField("Shout it out!:")
  college=models.ForeignKey('College')
  time=models.DateTimeField(auto_now_add=True)

class Feed(models.Model):
  gender = models.CharField(max_length=5, choices=GENDER_CHOICES, default='girl')
  location=models.CharField(max_length=25, choices=LOCATION_CHOICES)
  msg = models.TextField("Message")
  email = models.EmailField("Email:",blank=True, null = True)
  college=models.ForeignKey('College')
  time=models.DateTimeField(auto_now_add=True)

在模板中,我希望在根据时间过滤的流中同时显示Feed和帖子。我该怎么做?我们如何按时间过滤两个模型对象?可能吗?需要帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

您可以考虑创建包含公共字段的基类。然后,您可以执行类似于BaseFeed.objects.all()。order_by('time')的查询并在模板中迭代它,但您可以将每个结果项视为它实际的类型。

class BaseFeed(models.Model):
    ....
    msg = models.TextField("Message")
    college=models.ForeignKey('College')
    time=models.DateTimeField(auto_now_add=True)
    ....

以下是我在做类似事情时总是提到的一些片段。

http://www.djangosnippets.org/snippets/1034/

http://www.djangosnippets.org/snippets/1031/

http://adam.gomaa.us/blog/2009/feb/16/subclassing-django-querysets/