0

je les modèles:Django Sérialiseurs pas l'analyse syntaxique des objets clés étrangers

class employees(models.Model): 
    emp_id=models.PositiveIntegerField() 
    emp_name = models.CharField(max_length = 100) 
    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() 

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

Dans mon point de vue, je vous écris de requête comme:

def notification(request): 
    template = loader.get_template('base.html') 
    user = employees.objects.get(emp_id=request.user.username) 
    emp_id=user.emp_id; 
    notification=notify.objects.filter(receiver_id__employee__emp_id=emp_id); 
    data = serializers.serialize("json", notification) 
    print(data); 
    context={'notification':data,'notification_count':notification_count} 
    femp = json.dumps(context) 
    return JsonResponse(femp, safe=False, content_type="text/html") 

Dans la presse écrite (données) son impression

[{"model": "apply.notify", "pk": 32, 
    "fields": {"sender_id": 121, "receiver_id": 44, "viewed": "N"}}] 

Voici son impression sender_id = 121 qui est id dans la table de congé, mais si je veux start_date et emp_name (comme il est référencé par l'employé en congé table) .Que dois-je écrire dans serializers.serialize() afin que je puisse référencer des entités de clés étrangères. Pour cela, vous pouvez utiliser des clés naturelles.

Répondre