【发布时间】:2022-01-03 00:43:29
【问题描述】:
- 我想在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>'
- 下面的方法可以正常工作吗?
[模型.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>'
【问题讨论】: