Tracking User Actions

In this chapter, you will learn how to build a follow system and create a user activity stream.

You will also discover how Django signals work and integrate Redis's fast I/O storage into your project to store item views.

In the previous chapter, you implemented AJAX views into your project using jQuery and built a JavaScript bookmarklet to share content from other websites on your platform.

This chapter will cover the following points:

  • Building a follow system
  • Creating many-to-many relationships with an intermediary model
  • Creating an activity stream application
  • Adding generic relations to models
  • Optimizing QuerySets for related objects
  • Using signals for denormalizing counts
  • Storing item views in Redis

Building a follow system

Let's build a follow system in your project. This means that your users will be able to follow each other and track what other users share on the platform.

The relationship between users is a many-to-many relationship: a user can follow multiple users and they, in turn, can be followed by multiple users.