vue下拉菜单4、

本文介绍了在Vue应用中使用@click事件发送数据到Django后台后,如何在Django中通过request.data接收并进行反序列化处理。接着详细展示了反序列化的代码实现,并说明了在视图函数中对数据进行序列化加工,最终保存到数据库的过程,尤其关注多对多关系的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一章我们说到,vue前台用@click点击事件已经将用户选择后添加的数据通过POST方式提交给后台,那么这章就来说说后台django和反序列化的写法。
前台已经发送过来了数据,那么怎么django中怎么接收呢在这里插入图片描述
在视图函数中通过data = request.data来获取
将获取到的数据data值经过反序列化的加工然后再通过is_valid()判断保存
那么现在就看看反序列化的方法

class TianjiaSerializer(serializers.Serializer):
    name = serializers.CharField(max_length=120)
    yd = serializers.ListField()
    # 我数据库表格里定义的字段,那么就就一样
    # 这里使用的ListField一般就是这么写没错,二来视图文件里获取的request.data前端传来的值如果打印的话,
    # 获取的yd(id)就是列表(这就是打印的request.data的值{'name': 'asdas', 'yd': [1, 2]}),所以这的id用ListField
    # 那么接下来转接到下图函数中的添加方法
    def create(self, data):

        name = data.pop('name')
        yd = data.pop('yd')
        # 这是列表的常见操作,pop弹出,因为pop弹出后会有返回值,不会像remove直接删除没有了,
        # 我们需要它返回的name,和id,然后接下来就直接添加name就行,赋值给一个对象yinobj
        # yinobj(对象).yd(id).set(*yd{这里一个*就是表示将'yd': [1, 2]这个列表打散然后添加到数据库})
        yinobj = Yinyuejia.objects.create(name=name)
        yinobj.yd.set(*yd)
        return yinobj   #然后将yinobj它返回给视图函数

这就是反序列化的代码,用set方法添加

 tian = TianjiaSerializer(data=data)

在视图函数中将data值经过序列化加工

        if tian.is_valid():
            tian.save()
            return Response({
                'code': 'ok'

            })
        else:
            print(tian.errors)
            return Response({
                'code': 'no'
            })

保存添加到数据库中
这里是多对多关系,那么下一章附上完整的代码

资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值