首页 > 解决方案 > serializer.save() 不将数据保存到管理数据库

问题描述

所以,我正在制作一个简单的 Web 应用程序,我将在其中使用 React JS 前端接口和表单从用户那里获取数据。Django 停留在我创建 CRUD 函数的背景中。

我的应用程序允许用户创建、编辑、删除和查看输入的数据。

编辑和查看工作得很好,但创建对我来说一直是个问题。浏览器控制台或 django 终端没有错误,但 React JS 前端更改未反映在 Django Admin 中。

现在,handleChange 只是监听 HTML 表单中所做的更改。Active Record 是我当前添加新数据的形式:

handleChange(e){
var value = e.target.value;
this.setState({ 
activeRecord:{ 
   ...this.state.activeRecord, 
   [e.target.name]:value 

} }) }

handleSubmit() 只是将我的前端提交按钮连接到 Django 的 CRUD'S Create url。最后,我将当前对象状态设置回默认值。

handleSubmit(e){
    e.preventDefault()
    console.log('Item',this.state.activeRecord)

    var csrftoken = this.getCookie('csrftoken')
    var url = 'http://127.0.0.1:8080/DataCollection/create/'


    fetch(url,{
        method:'POST',
        headers: {
            'Content-type':'application/json',
            'X-CSRFToken': csrftoken,
        },
        body:JSON.stringify(this.state.activeRecord)
    })  .then((response)=>{
            this.fetchTasks()
            this.setState({
                activeRecord:{
                    id: "",
                    full_name:"",
                    age:"",
                    gender:"",
                    weight:"",
                    height:"",
                    salary: "",
                    project_count: "",
                    job_domain: "",
                    experience: "",
                    no_of_jobs:"",
                }
            })
      }).catch(function(error){
        console.log('ERROR',error)
      })

}

handleSubmit() 只是将我的前端提交按钮连接到 Django 的 CRUD'S Create url。

请注意,当我运行它时没有显示错误,但是handlSubmit() 函数中的第 2 行 console.log 显示了输入的值,这意味着我添加的数据至少达到了 react js。

因此,这让我觉得 Django 部分存在一些问题,因此,我在这个 subreddit 中发布了这个问题。

注意:我是一名有抱负的数据科学家,将于 2020 年 9 月开始攻读硕士学位。只是想在我的简历中添加一些 Web 应用程序开发技能。

任何建议将不胜感激......

创建视图:

 @api_view(['POST'])
  def createRecord(request):
  serializer = InputValuesSerializers(data=request.data)
  if serializer.is_valid():
      serializer.save()
  return Response(serializer.data)

b.) 序列化器:serializers.ModelSerializer 必须是这种方式。当我尝试使用 serializers.Serializer 时出现可怕的错误

类 InputValuesSerializers(serializers.ModelSerializer): 类 Meta: 模型 = InputValues 字段 = '所有'

我已经尝试了所有在线资源和讨论,但找不到解决方案。这真的很令人沮丧,因为我可以数据去往它应该去的地方,但只有一个声明可能会让我搞砸了。

我真的很感激任何帮助。

标签: djangoreactjs

解决方案


推荐阅读