2

我有 1 个问题。这些是我的 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;
}

我想在制作查询集时显示用户模型的用户名,而不是用户模型的 pk。

请帮我。

4

2 回答 2

3

我认为您需要更改查询集以包含该信息。

detailContents = CommunityBoard.objects.filter(pk=pk).values_list('contents', 'title', 'user__username')
returnValues = serializers.serialize('json', detailContents)
于 2012-10-10T10:34:29.583 回答
0

您可以在序列化过程中使用自然键

所以你可以试试这个:

returnValues = serializers.serialize('json', detailContents, 
                                    use_natual_keys=True)
于 2012-10-10T10:36:32.763 回答