django joining two models

8 views
Skip to first unread message

sum abiut

unread,
Jan 31, 2019, 6:51:02 PM1/31/19
to django...@googlegroups.com

Hi,
i have three models LeaveBalance, NewLeave and User. I want to pull date from NewLeave and User, basically displaying the data of users that have apply for a leave. I had difficulty figuring out how to accomplish this. my views and model are below.

The view is throwing an errror:
 

Cannot resolve keyword 'newleave_set' into field. Choices are: date_joined, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, leave_balance, logentry, newleave, password, profile, user_permissions, username
Exception Location: /root./virtualenvs/eleave/local/lib/python2.7/site-packages/django/db/models/sql/query.py in names_to_path, line 1352
Python Executable: /root./virtualenvs/eleave/bin/python



views.py
def Allleaves(request):
    allleave=User.objects.filter(newleave_set__isnull=False).distinct()
    return render(request,'allleave.html',locals())



models.py
class Leave_Balance(models.Model):
    user=models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True,)
    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)
    leave_encashment= models.FloatField(null=True, blank=True, default=None)
    Year=models.CharField(max_length=100,default='')
    def __unicode__(self):
         return  self.Year

   

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)
    End_Date=models.DateField(null=True, blank=False)
    Total_working_days=models.FloatField(null=True, blank=False)
    Reason=models.TextField(max_length=1000,null=True, blank=False)
   
    def __unicode__(self):
         return  self.Leave_type


 
Reply all
Reply to author
Forward
0 new messages