我想實現類似Facebook的未讀項目/通知。我目前有以下模型:django實現未讀項目
class UnreadItems(models.Model):
unread = models.BooleanField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
user = models.ForeignKey(User,null=True)
content_object = generic.GenericForeignKey('content_type','object_id')
class Meta:
db_table = 'unread_items'
每當有人產生任何別人,我創建了收件人爲目標的新條目交談/消息或。但是,創建未讀很容易,但我應該如何以可管理的方式進行操作,以便在請求/查看資源時將項目標記爲已讀。
聽起來合乎邏輯。但有時候,如果我只想計算未讀項目,我不想將其設置爲未讀。與使用自定義管理器相比,它可以爲信號完成嗎? – goh
請解釋一下「計算未讀項目」的含義?如果您想要問您是否要計算給定用戶的未讀項目數,則可以執行類似UnreadItems.objects.filter(user = u).count()的轉發查詢。您還可以通過content_type if您正在嘗試爲用戶查找給定類型的未讀項目。使用content_types框架查找給定模型的類型,然後在篩選器查詢中使用。 – arustgi
切記:信號對於操縱對象(CRUD)很有用。如果你只是想查詢計數,你可以在視圖中做到這一點 – arustgi