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.