最近写的一个项目中,有一个功能是关于用户发帖的时候会输入标签功能,这个标签在前端是文本形式的
POST出去后,后端处理,然后转化成相应的object保存。
功能实现思路
用户表单输入帖子相关的标签,不同的标签用隔开,然后在提交数据的时候,当做一个整体传到后端,然后后端接收到,在分隔开,每一个字段单独保存为一个object,如果数据库中有一样的object则只关联不创建,如果没有响应的object,那么既创建又关联。
node_obj_exist_list=[]
node_obj_noexist_list=[]
fornodeinnode_list:
ifNodes.objects.filter(name=node).exists():
node_obj=Nodes.objects.get(name=node)
node_obj_exist_list.append(node_obj)
else:
node_obj=Nodes()
node_obj.name=node
node_obj.owner=user
node_obj.status=2
node_obj.save()
node_obj_noexist_list.append(node_obj)
node_objs=node_obj_exist_list+node_obj_noexist_list
thread.save()
thread.nodes.add(*node_objs)
功能方面是实现了,但是老实说,这个功能写的感觉有点繁琐,抽空改进一下。
待完善的地方
1、表单提交的地方,有点对用户输入不友好,这块感觉需要弄点js来方便用户输入,可能涉及到的内容是对用户输入的主体内容进行分词,然后给出建议标签。2、需要对标签进行过滤,目前后端逻辑没对这块进行过滤,比如用户输入的标签中,有或者用户输入很多,这个对需要在进行判断处理一下。3、改进代码质量,虽然目前功能实现了,但是感觉代码质量不是很好,这块后期根据自己的水平,慢慢改进。
领取专属 10元无门槛券
私享最新 技术干货