django+vue 一对多表添加数据 怎么写

问题遇到的现象和发生背景

django+vue 一对多表的增删改查不会

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
// 这个是模型类

class GameInfo(models.Model):
    """
    游戏模型类
    """
    name = models.CharField(max_length=200, verbose_name=u"名称")
    distinguish = models.CharField(max_length=200, verbose_name=u"识别码")

    class Meta:
        db_table = 'GameInfo'  # 指定数据库表名
        verbose_name_plural = '游戏管理'  # 在admin站点中显示的名称
        ordering = ['id']   # 添加这个自动 就不会出警告

    def __str__(self):
        """
        定义每个数据对象的显示信息
        """
        return self.name


class GearInfo(models.Model):
    """
    挡位模型类
    """
    name = models.CharField(max_length=200, verbose_name=u"名称")
    distinguish = models.CharField(max_length=200, verbose_name=u"识别码")
    price = models.CharField(max_length=50, verbose_name=u"挡位价格")
    game = models.ForeignKey(GameInfo, on_delete=models.CASCADE, verbose_name=u"游戏名称", related_name='gameinfos')

    class Meta:
        db_table = 'GearInfo'  # 指定数据库表名
        verbose_name_plural = '挡位管理'  # 在admin站点中显示的名称

    def __str__(self):

        return str(self.id) + '--' + self.name


// 序列化器

# 挡位类 序列化器
class GearInfoerializer(BulkSerializerMixin, ModelSerializer):

    game = GameInfoerializer()

    class Meta:
        model = GearInfo
        fields = '__all__'

// 视图

# 游戏挡位视图
class GearInfoViews(BulkModelViewSet):


    queryset = GearInfo.objects.all()
    serializer_class = GearInfoerializer
    pagination_class = PageNum

    def allow_bulk_destroy(self, qs, filtered):
        # 不允许批量删除
        return False





运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

不知道怎么弄了

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

正确答案


    # 添加数据
    def create(self, validated_data):
        game = validated_data.pop('game')
        game = GameInfo.objects.get(id=self.initial_data["game"]["id"])
        return GearInfo.objects.create(game=game, **validated_data)

GameInfo和GearInfo是Django的模型类,定义了数据库中的两个表。GearInfo模型类还使用了外键,将其与GameInfo模型类关联起来。

序列化器用于将模型类中的数据序列化为JSON格式,以便在网页上展示或进行网络传输。GearInfoerializer是GearInfo模型类的序列化器,它继承了BulkSerializerMixin和ModelSerializer类,并在Meta类中指定了模型类为GearInfo,要序列化的字段为所有字段。

视图类定义了如何处理来自网页或客户端的HTTP请求。GearInfoViews类继承了BulkModelViewSet类,它提供了一系列方法来处理对挡位表的增删改查操作。例如,queryset属性指定了视图类所操作的数据,serializer_class属性指定了用于序列化数据的序列化器类,pagination_class属性指定了用于分页的分页器类。此外,GearInfoViews类还重写了allow_bulk_destroy方法,禁止批量删除操作。