【问题标题】:How to get current account id in django models.py如何在 django models.py 中获取当前帐户 ID
【发布时间】:2022-01-03 00:43:29
【问题描述】:
  1. 我想在django models.py中获取当前账户的id。我知道我可以通过添加'request.user'来获取当前帐户的用户对象。但是,我正在使用的函数需要在条件中使用 self 参数,因此 'request' 不能一起使用。请帮忙。

[模型.py]

class Leave(models.Model):
    name = models.CharField(max_length=50, blank=True, null=True)
    kind = models.CharField(choices=KIND_CHOICES, max_length=20, blank=True, null=True)
    from_date = models.DateField(blank=True, null=True)
    user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True)


    @property
    def get_html_url(self):
        url = reverse('leave:leave_edit', args=(self.id,))

        if self.kind == 'Annual' and self.user.id == self.user_id:
            return f'<div class="Annual-title"><a href="{url}" style="color:black;"> {self.name} </a></div>'
        elif self.kind == 'Annual' and self.user.id != self.user_id:
            return f'<div class="Annual-title" data-toggle="modal" data-target="#leave_{self.id}"> {self.name} </div>'

  1. 下面的方法可以正常工作吗?

[模型.py]

class Leave(models.Model):
    name = models.CharField(max_length=50, blank=True, null=True)
    kind = models.CharField(choices=KIND_CHOICES, max_length=20, blank=True, null=True)
    from_date = models.DateField(blank=True, null=True)
    user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True)

    def user_id(request):      +++ add
        return request.user

   @property
    def get_html_url(self):
        url = reverse('leave:leave_edit', args=(self.id,))

        if self.kind == 'Annual' and self.user.id == Leave.user_id:
            return f'<div class="Annual-title"><a href="{url}" style="color:black;"> {self.name} </a></div>'
        elif self.kind == 'Annual' and self.user.id != Leave.user_id:
            return f'<div class="Annual-title" data-toggle="modal" data-target="#leave_{self.id}"> {self.name} </div>'

【问题讨论】:

标签: python django


【解决方案1】:

我不明白你为什么在models.py 文件中这样做。

您可以在views.py 中获取当前帐户 ID。

def yourfunction(request):
    ....
    user = request.user
    user_id = user.id
    ....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多