我有3个模型,我想展示申请休假的用户,但我不知道该怎么做。用户与新假期之间的关系是一对多的,与新假期之间的假期余额是多对多的,用户余额之间是一对一的关系。我只想显示来自用户和新休假的数据。
class newleave(models.Model):
user=models.ForeignKey(User,default='',on_delete=models.CASCADE)
leave_balance=models.ManyToManyField(Leave_Balance)
leave=(
('annual','annual'),
('sick','sick'),
)
Leave_type=models.CharField(max_length=100,choices=leave,blank=False,default='')
dp=(
('test','test'),
('test1','test1'),
)
department=models.CharField(max_length=100,choices=dp,blank=False,default='')
Start_Date=models.DateField(null=True, blank=False, default=None)
End_Date=models.DateField(null=True, blank=False, default=None)
Total_working_days=models.FloatField(null=True, blank=False, default=None)
def __unicode__(self):
return self.Leave_type
class Leave_Balance(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True,)
Outstanding_balance=models.FloatField(null=True, blank=True, default=None)
Monthly_entitlement=models.FloatField(null=True, blank=True, default=None)
Monthly_consumption=models.FloatField(null=True, blank=True, default=None)
Leave_current_balance= models.FloatField(null=True, blank=True, default=None)
Month=models.CharField(max_length=100,default="",null=True)
Year=models.CharField(max_length=100,default='')
def __unicode__(self):
return self.Year
答案 0 :(得分:0)
获取在newleave表中具有条目的用户的简单方法是
User.objects.filter(newleave_set__isnull=False).distinct()
我建议以下PEP8为您的代码风格,因为它允许程序员熟悉Python迅速拿起计划的意图是你写的。
类名应使用CapsWord约定-class NewLeave
class LeaveBalance
方法名称和实例变量应为小写字母,并用下划线NewLeave.start_date
等