- I want to get the id of the current account in django models.py. I know I can get the user object of the current account by adding 'request.user'. However, the function I am using requires the use of the self argument to be used in the condition, so 'request' cannot be used together. Please help.
[models.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>'
- Does the method below work normally?
[models.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>'