如何在queryset django中显示外键

时间:2012-10-10 10:27:09

标签: django foreign-keys

我有一个问题。 这些是我的django模型。(这只是一个例子)

 class Users(models.Model):
    username = models.Charfield()


 class CommunityBoard(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=30)
    contents = models.TextField()

我使用post

将数据(nsdictionary格式)发送到服务器
 { pk = 1 }
在views.py中

 def detailCommuBoard(request):
     returnValues = {}
     returnValues.update(csrf(request))
     pk = request.POST['pk'];
     detailContents = CommunityBoard.objects.filter(pk=pk)
     returnValues = serializers.serialize('json', detailContents)

     return HttpResponse(returnValues)

然后,我在iphone中获得了序列化数据。(json格式)

 {
    fields =         {

        contents = "\Uc5ed\Uc2dc \Ud30c\Uc774\Uc36c";
        title = "\Ud30c\Uc774\Uc36c \Ud504\Ub85c\Uadf8\Ub798\Ubc0d";           
        user = 1;

    };        
    pk = 11;
}

我想在make queryset时显示用户模型的用户名,而不是用户模型的pk。

请帮助我。

2 个答案:

答案 0 :(得分:3)

我认为您需要更改Queryset以包含该信息。

detailContents = CommunityBoard.objects.filter(pk=pk).values_list('contents', 'title', 'user__username')
returnValues = serializers.serialize('json', detailContents)

答案 1 :(得分:0)

您可以使用natural keys during serialization

所以你可以试试这个:

returnValues = serializers.serialize('json', detailContents, 
                                    use_natual_keys=True)