I would like a Pythonic way of accomplishing the following task. To call a method in Campaign Model that returns a URL with the campaign ID and the current login user ID i.e. /campaign_id/user_id
To achieve this I need the request.user scope, but I don't think its a good idea to have this directly in my models. I have been reading Python can use getters and setters, would this be useful? So my idea is to have something like this...
campaign = Campaign.object.get(id=1)
campaign.set_current_user(request.user)
referral_url = campaign.get_referral_url()
which would give me /campaign_id/user_id/
Is this a good way?
My Model so far:
class Campaign(models.Model):
   name = models.CharField(max_length=120)
   @property
   def current_user(self):
       return self._current_user
   @current_user.setter
   def current_user(self, user_object):
      if user_object:
          return user_object.id
      else:
          return None
   def _build_referral_url(self):
        """
        Builds the full referral URL for the user.
        :return:
        """
        return self.name + "/" + self.current_user
    def get_referral_url(self):
        """
        :return: Campaign referral URL.
        """
        return self._build_referral_url()
 
    