Размещение данных о дате в модели Django
Мне интересно, знает ли кто-нибудь из вас, ребята, как исправить эту ошибку, я разбирался с ней в течение нескольких часов, она связана с постингом json-даты (дата из html-выбирателя даты) в бэкенд-модель с использованием веб-фреймворка django. Пожалуйста, дайте мне знать, если мой вопрос непонятен.
ViewOrders.html
<form id="form">
<label for="start">Drop Off Date Selector:</label>
<br>
<input type="date" id="dropOffDate" name="drop_Off_Date"
min="2022-01-01" max="3000-12-31">
<button type="submit" value="Continue" class="btn btn-outline-danger" id="submit-drop-off-date" >Submit Drop Off Date</button>
</form>
<script type="text/javascript">
var form = document.getElementById('form')
form.addEventListener('submit', function(e){
e.preventDefault()
submitDropOffData()
console.log("Drop Off Date submitted...")
})
function submitDropOffData() {
var dropOffDateInformation = {
'dropOffDate':null,
}
dropOffDateInformation.dropOffDate = form.drop_Off_Date.value
var url = "/process_drop_off_date/"
fetch(url, {
method:'POST',
headers:{
'Content-Type':'application/json',
'X-CSRFToken':csrftoken,
},
body:JSON.stringify({'drop-off-date':dropOffDateInformation}),
})
.then((response) => response.json())
.then((data) => {
console.log('Drop off date has been submitted...')
alert('Drop off date submitted');
window.location.href = "{% url 'home' %}"
})
}
</script>
Views.py
def processDropOffDate(request):
data = json.loads(request.body)
DropOffDate.objects.create(
DropOffDate=data['drop-off-date']['dropOffDate'],
)
return JsonResponse('Drop off date submitted...', safe=False)
Models.py
class DropOffDate(models.Model):
dropOffDate = models.CharField(max_length=150, null=True)
def __str__(self):
return str(self.dropOffDate)
Ошибки
Исправление заключалось в том, что я создал объект с неправильным именем поля, поэтому Json-ответ был недействительным.
class DropOffDate(models.Model):
dropOffDate = models.CharField(max_length=150, null=True)
def __str__(self):
return str(self.dropOffDate)
Изменено на:
class DropOffDate(models.Model):
DropOffDate = models.CharField(max_length=150, null=True)
def __str__(self):
return str(self.DropOffDate)