我使用django-activity-stream模塊來收集用戶活動。 但是,當一個用戶(用戶1)跟隨另一個(用戶2)。Django:收集用戶,對象活動流
我需要獲取以下用戶(用戶2)的活動流,併合並按日期和時間排序的所有活動(請參閱下面的代碼)。
而且由於活動列表增長,我認爲我會面對性能和優化問題。 我相信有人已經解決了類似的問題。
關於如何使活動生成更有效的任何想法和建議?
def build_activity(raw_activity):
activity = []
for item in raw_activity:
action_object = get_action_object(item)
activity.append({
'user': User.objects.get(pk=int(item.actor_object_id)),
'verb': item.verb,
'action_object': action_object[1],
'type': action_object[0],
'timestamp': timesince(item.timestamp),
'datetime': item.timestamp,
})
return activity
def activity_stream(user):
from actstream.models import actor_stream
raw_activity = actor_stream(user)
activity = build_activity(raw_activity)
for following in Follow.objects.filter(user=user):
stream = actor_stream(following.target_user)
activity += build_activity(stream)
return sorted(activity, key=lambda item:item['datetime'], reverse=True)
感謝,
蘇丹
「但是,當Ø ne用戶(user1)跟隨另一個(user2)。「那又怎麼樣? – jpic