zoukankan      html  css  js  c++  java
  • DjangoRestFramework的外键反向关系序列化的一个问题

          先用文档中的样例:

          Models定义:

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

         关系序列化定义:

    class TrackSerializer(serializers.ModelSerializer):
        class Meta:
            model = Track
            fields = ('order', 'title', 'duration')
    
    class AlbumSerializer(serializers.ModelSerializer):
        tracks = TrackSerializer(many=True, read_only=True)
    
        class Meta:
            model = Album
            fields = ('album_name', 'artist', 'tracks')

          这个关系序列化有效的前提是必须在model定义中加

    related_name='tracks'

         这个设置项,否则tracks在虚拟化结果中会找不到或者报错。

  • 相关阅读:
    mustache.js 使用
    iscroll4 input textarea不能获得焦点问题
    object-fit?
    window.open()被拦截问题
    JSONP
    mouseenter和mouseover的区别
    前端页面卡顿-代码优化
    如何设置html中img宽高相同-css
    iscroll使用之页面卡顿问题
    iScroll的简单使用
  • 原文地址:https://www.cnblogs.com/dhcn/p/7456988.html
Copyright © 2011-2022 走看看