В веб-приложении django я пытаюсь отправить запрос в API, используя axios
и внешний интерфейс Vue.js
. Я всегда сталкиваюсь со следующей ошибкой, когда пытаюсь добавить нового потребителя:
Тип исключения: IntegrityError в / api / consumer /
Значение исключения: ограничение NOT NULL не выполнено: api_consumer. имя
import axios from 'axios'
export default {
postConsumer(method, params , data){
if(method==='post'){
return ajax('api/consumer/','post', {data})
}
}
}
/*
*@param url
*@param method
*@param params
*@param data
*@returns
*/
function ajax(url,method,options) {
if (options !== undefined){
var {params = {}, data = {}} = options
}else {
params= data = {}
}
return new Promise((resolve ,reject)=>{
axios({
url,
method,
params,
data
}).then(res=> {
resolve(res)
}, res =>{
reject(res)
})
})
}
<template>
<div id="new" align="center">
<form @submit.prevent="postNewConsumer" align="center" >
<input type="text" name="name" id="name" v-model="formData.name" value="" placeholder="Name">
consumer type:
<select id="newType" v-model="formData.consumer_type">
<option disabled value="">select type</option>
<option value="low">low</option>
<option value="high">high</option>
<option value="extra">extra_high</option>
</select>
<input type="submit" value="ADD">
</form>
</div>
</div>
</template>
<script>
import axios from 'axios'
import api from '../api'
export default {
name: 'consumersList',
data() {
return {
msg: '',
formData: {
name: '',
consumer_type: ''
},
consumers: [],
search: '',
selected: ''
}
},
methods: {
postNewConsumer(){
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN"
api.postConsumer('post', null , this.formData).then(res => {
}).catch((e)=>{
})
}
},
}
Я пытаюсь опубликовать информацию о потребителе в API (уже использую django), но у меня всегда есть 500 откликов, когда я пытаюсь опубликовать сообщения с помощью axios и ajax