小编mol*_*son的帖子

Django REST框架:使用序列化程序实现简单的ForeignKey关系

我正在使用Django REST框架,并尝试映射一个简单的外键关系以提供相关数据以供进一步使用,类似于以下请求:

将反向关系与Django-rest-framework的序列化器一起使用

我收到以下异常,而不是结果:

尝试获取album_name序列化程序中字段的值时出现AttributeError AlbumSerializer。序列化程序字段的名称可能不正确,并且与int实例上的任何属性或键都不匹配。原始异常文本为:'int'对象没有属性'album_name'。

楷模:

    class Album(models.Model):
        album_name = models.CharField(max_length=100)
        artist = models.CharField(max_length=100)

    class Track(models.Model):
        # album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE)
        album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE)
        order = models.IntegerField()
        title = models.CharField(max_length=100)
        duration = models.IntegerField()

        class Meta:
            unique_together = ('album', 'order')
            ordering = ['order']

        def __unicode__(self):
            return '%d: %s' % (self.order, self.title)
Run Code Online (Sandbox Code Playgroud)

序列化器:

class AlbumSerializer(serializers.ModelSerializer):
    class Meta:
        model = Album
        fields = ('id', 'album_name', 'artist' )
class TrackSerializer(serializers.ModelSerializer):
    album_id = AlbumSerializer(many=False, read_only=True)
    class …
Run Code Online (Sandbox Code Playgroud)

django foreign-keys serializer django-rest-framework

4
推荐指数
1
解决办法
2030
查看次数