code: def update_score(self):
          
  
          if not self.subject_token:
              return
  
          vote_score = 0
          replies_score = 0
          for msg in self.message_set.all():
              # Calculate replies_score
              replies_score += self._get_score(300, msg.received_time)
  
              # Calculate vote_score
              for vote in msg.vote_set.all():
                  vote_score += self._get_score(100, vote.created)
  
          # Calculate page_view_score
          page_view_score = self.hits * 10
  
          self.score = (page_view_score + vote_score + replies_score) // 10
          self.save()
docs: Update the relevance score for this thread.
  
          The score is calculated with the following variables:
  
          * vote_weight: 100 - (minus) 1 for each 3 days since
            voted with minimum of 5.
          * replies_weight: 300 - (minus) 1 for each 3 days since
            replied with minimum of 5.
          * page_view_weight: 10.
  
          * vote_score: sum(vote_weight)
          * replies_score: sum(replies_weight)
          * page_view_score: sum(page_view_weight)
  
          * score = (vote_score + replies_score + page_view_score) // 10
          with minimum of 0 and maximum of 5000