2017-10-08 2 views
0

Je models.pyDjango: requête impliquant clé étrangère

class employees(models.Model): 
    emp_id=models.PositiveIntegerField() 
    emp_name = models.CharField(max_length = 100) 
    emp_lname = models.CharField(max_length = 100) 
    emp_loc=models.CharField(max_length=5,choices=LOCATION) 
    manager_id=models.ForeignKey('self',null=True,blank=True) 

class leave(models.Model): 
    employee = models.ForeignKey(employees, on_delete=models.CASCADE, default='1') 
    start_date = models.DateField() 
    end_date = models.DateField() 
    status=models.CharField(max_length=1,choices=LEAVE_STATUS,default='P') 
    ltype=models.CharField(max_length=2,choices=LEAVE_TYPE) 

class notify(models.Model): 
sender_id=models.ForeignKey(leave, related_name='%(class)s_sendername') 
receiver_id=models.ForeignKey(leave,related_name='%(class)s_receivername') 
date_time=models.DateTimeField(auto_now_add=True) 
viewed=models.CharField(max_length=2) 

Je veux l'id employé de receiver_id comme receiver_id est une clé étrangère ... Lorsque je fais une recherche notify.objects.filter(receiver_id__employee__emp_id=1)

Je suis obtenir queryset vide mais je veux les tuples avec emp_id = 1.

Répondre

0

ici notify.objects.filter(receiver_id__employee__emp_id=1) Assurez-vous d'avoir affecté un champ emp_id car il ne s'agit pas d'un champ incrémenté automatiquement.

aussi essayer

notify.objects.filter(receiver_id__employee__id=1)