Django将参数传递给模型中的自定义方法(或访问请求)

and*_*ers 4 django django-models

我正在尝试通过Django模型中的自定义方法实现一些自定义登录.我想知道它是否可能:

  • 在自定义方法中获取request.user
  • 获取在方法中发出请求的用户
  • 或者将参数传递给自定义方法

想做这样的事情:

class OneModel(models.Model):
    (...)

    def viewed(self):
        profile = request.user.profile
        viewed = self.viewed_episodes.filter(user=profile).exists()
        if viewed: return True
        else: return None
Run Code Online (Sandbox Code Playgroud)

我想到的另一种可能性是:

class OneModel(models.Model):
    (...)

    def viewed(self, user):
        profile = user.profile
        viewed = self.viewed_episodes.filter(user=profile).exists()
        if viewed: return True
        else: return None
Run Code Online (Sandbox Code Playgroud)

但我认为这都不可能.也许我需要的是模板标签?

DrT*_*rsa 5

第二个是正确的.

def viewed(self, user):
    return self.viewed_episodes.filter(user=user.profile).exists() or None
Run Code Online (Sandbox Code Playgroud)