我想要一个Python的方式来完成以下任务。调用活动模型中的方法,该方法返回带有活动ID和当前登录用户ID的URL,即/campaign_id/user_id
为了实现这一点,我需要request.user
范围,但我认为在我的模型中直接使用它不是一个好主意。我一直在读Python可以使用getter和setter,这会有用吗?所以我的想法是这样。。。你知道吗
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/
这样好吗?你知道吗
到目前为止我的模型:
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()
而不是:
简单定义:
这看起来最直接,不会给人一种错误的印象,即所讨论的
user
会以某种方式永久地连接到Campaign
。你知道吗相关问题 更多 >
编程相关推荐