2015-11-05 34 views
0

这是我的模型:DjangoRestFramework - 如何序列特定ForiegnKey场,而不是PK值

class Post(models.Model): 
    owner = models.ForeignKey(User, related_name="%(app_label)s%(class)s_set") 
    usersVoted = models.ManyToManyField(User, blank=True) 
    post = models.CharField(max_length=400) 

,这是我的串行:

class PostSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Post 
     fields = ('owner', 'usersVoted', 'post') 
     read_only_fields = ('owner', 'usersVoted') 

    def create(self, validated_data): 
     drop = Drop(
       owner = User.objects.get(username='TestUser'), 
       post = validated_data['post'], 
     ) 

业主有一个ForeignKey到默认的Django用户模型。目前,当我序列化帖子时,所有者是用户的pk值。我如何让拥有者成为用户的用户名呢?

回答

0

你可以这样做:

class PostSerializer(serializers.ModelSerializer): 
    owner = serializers.ReadOnlyField(source="owner.username") 

    class Meta: 
     model = Post 
     fields = ('owner', 'usersVoted', 'post') 
     read_only_fields = ('owner', 'usersVoted') 

    def create(self, validated_data): 
     drop = Drop(
       owner = User.objects.get(username='TestUser'), 
       post = validated_data['post'], 
     ) 
+0

@ user2719875我的答案是否适合你..? –

相关问题