2017-10-09 40 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"}}] 

這裏它的打印sender_id = 121這是離開表中的id,但如果我想start_date和emp_name(因爲它是從員工引用的假表)。我應該在serializers.serialize()中寫什麼,以便我可以引用外鍵入門。

回答