2011-05-24 17 views
0

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) 

在我想在按時間過濾的流兩種物料和帖子顯示在一起模板。我該怎麼做?我們如何按時間過濾兩個模型對象?可能嗎?需要幫忙。謝謝。

+0

所以你要訂購的時間二者的結合,然後?最後兩個應該顯示在一個飼料? – 2011-05-24 02:07:48

+0

這兩個shud出現在相同的頁面..喜歡如何在Facebook newsfeed照片,評論,視頻n al按時間排列在一起。 – 2011-05-24 06:49:08

+0

請參閱下面的Joe J的回答。在這種情況下,無論如何你都需要一個編程解決方案。沒有簡單的查詢可以做這樣的事情。 – 2011-05-24 07:28:01

回答

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/