【问题标题】:Getting a field from another django model?从另一个 django 模型中获取字段?
【发布时间】:2021-04-06 11:21:37
【问题描述】:

如何从员工应用中获取字段 pto 并在权限应用中使用。

员工/models.py

class Employee(AbstractUser):
    department = models.ForeignKey(Department, on_delete=models.CASCADE,blank=True, null=True)
    pto = models.IntegerField(default=20)
    is_deleted = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    roles = models.ManyToManyField(Role, related_name='+')

    def __str__(self):
        return self.username

permission/models.py

class Permission(models.Model):
    STATUS = (
        ('PENDING', 'PENDING'),
        ('DENIED', 'DENIED'),
        ('ACCEPTED', 'ACCEPTED')
    )
    user = models.ForeignKey(Employee, on_delete=models.CASCADE, related_name='lorem')
    description = models.CharField(max_length=255)
    date_created = models.DateTimeField(auto_now=True, blank=True, null=True)
    date = models.DateField()
    status = models.CharField(max_length=200, choices=STATUS, default=STATUS[0][0])
    is_deleted = models.BooleanField(default=False)


    def __str__(self):
        return self.description

抱歉,如果a不清楚,提前谢谢

【问题讨论】:

  • 您到底想达到什么目的?你的问题没有告诉我们。

标签: python django django-models django-rest-framework django-views


【解决方案1】:

将此添加到类权限模型

from yourproject.apps.employee.models import Employee

class Permission(models.Model):
    ..........

    def get_pto(self):
        return int(self.user.pto) # if it's floating point number then change int to float

现在您可以在 html 中使用 get_pto{{ form.get_pto }}

对不起,如果这不是您要找的,请让我清楚地知道,如果可以,我会尽力回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-31
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2018-05-03
    • 2017-05-20
    相关资源
    最近更新 更多