Haibane
Haibane

Reputation: 67

How to show foreign key in queryset django

I have 1 question. These are my django models.(This is just example)

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


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

I send data(nsdictionary format) to server using post

 { pk = 1 }

in 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)

then, I got serialized data in iphone.(json format)

 {
    fields =         {

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

    };        
    pk = 11;
}

I want to show User model's username when make queryset, not user model's pk.

please Help me.

Upvotes: 2

Views: 1820

Answers (2)

Rohan
Rohan

Reputation: 53386

You can make use of natural keys during serialization.

So you can try this:

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

Upvotes: 0

esauro
esauro

Reputation: 1286

I think you need to change the Queryset to include that information.

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

Upvotes: 3

Related Questions