Я отправляю http запрос от клиента.
Код клиента.
import requests
payload = {'data':['12', '15'], 'timestamp':['1', '2'], 'mission':['Mission01', 'Mission01']}
r = requests.post("http://127.0.0.1:8000", data=payload)
print(r.url)
получаю в Джанго http пост:
My models.py
from django.db import models
class Mission(models.Model):
name = models.CharField(max_length=250)
description = models.CharField(max_length=1000)
type = models.CharField(max_length=500)
date = models.DateField()
def __str__(self):
return self.name + '-' + self.description
class SensorLog (models.Model):
mission = models.ForeignKey(Mission, on_delete=models.CASCADE)
data = models.CharField(max_length=50)
timestamp = models.CharField(max_length=50)
my views.py
from django.shortcuts import render
from django.http import Http404, HttpResponse
from django.views.decorators.csrf import csrf_exempt
from .models import Mission, SensorLog
@csrf_exempt
def home(request):
context = {'request_method': request.method}
if request.method == 'POST':
datas = request.POST.getlist('data')
timestamps = request.POST.getlist('timestamp')
missions = request.POST.getlist('mission')
for i in range(len(datas)):
post = SensorLog.objects.create(data=datas[i], timestamp=timestamps[i], mission=missions[i])
return render(request, 'your_template_name_here', context)
Если я запускаю django и клиент ..
В Django у меня есть ошибка:
ValueError: Cannot assign "'Mission01'": "SensorLog.mission" must be a "Mission" instance.
почему я не сохраняю данные? почему у меня такая ошибка?
Как я могу это сделать?