0
外部キーのオブジェクトを解析していない私がモデルを持っている:Djangoのシリアライザは
私の見解で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)
私のようにクエリを書いています:印刷で
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")
(データ)の印刷
[{"model": "apply.notify", "pk": 32,
"fields": {"sender_id": 121, "receiver_id": 44, "viewed": "N"}}]
ここでは、leaveテーブルのidであるsender_id = 121が表示されますが、start_dateとemp_nameが必要な場合(leaveの従業員から参照されるためテーブル)。私はserializers.serialize()で書く必要がありますので、私は外部キーのentetiesを参照することができます。