2017-10-09 17 views
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を参照することができます。

答えて

関連する問題