Django не может сохранить тело запроса в sqlitedb
У меня возникла неприятная проблема с моим Django rest api, я использую postman для отправки базовой информации в виде необработанного json, затем создаю экземпляр модели 'Planet' и сохраняю его в sqlite db, которая поставляется с django в качестве стандарта,
Я получаю ответ 200, но блок try по какой-то странной причине не работает, я пробовал менять значения параметров, а также типы данных модели, но, похоже, это не помогает, на стороне сервера ошибок тоже нет, надеюсь, кто-нибудь сможет указать на мою логическую ошибку :)
Класс модели
class Planet(models.Model):
name = models.CharField(max_length=20)
temp = models.CharField(max_length=20)
hrs = models.CharField(max_length=20)
mass = models.CharField(max_length=20)
diameter = models.CharField(max_length=20)
circumference = models.CharField(max_length=20)
def add_planet(request):
if request.method == 'POST':
payload = json.loads(request.body)
planet_name = payload['name']
avg_temp = payload['temp']
day_hrs = payload['hrs']
planet_mass = payload['mass']
planet_diameter = payload['diameter']
planet_circumference = payload['circumference']
//data prints out correctly here
print(planet_name,avg_temp,day_hrs,planet_mass,planet_diameter,planet_circumference)
planet = Planet(name=planet_name,temp=avg_temp,hrs=day_hrs,mass=planet_mass, diameter=planet_diameter, circumference=planet_circumference)
try:
planet.save()
response = json.dumps([{ 'Success': 'Planet added successfully!'}])
except:
response = json.dumps([{ 'Error': 'Planet could not be added!'}])
return HttpResponse(response, content_type='text/json')
вот мое json тело, отправляемое в postman, я использую POST и сырой json как вариант, так как у меня нет формы или пользовательского интерфейса для воронки данных
{
"name": "henry",
"temp": "40",
"hrs": "34",
"mass":"134000",
"diameter": "8000",
"circumference":"24000"
}
любая помощь будет очень признательна :)
Я смог решить эту проблему, выполнив
python manage.py makemigrations
тогда работает
python manage.py migrate
это перекомпилировало мои модули правильно и добавило правильную соответствующую таблицу, которой не было при создании моего приложения даже после выполнения команды migrate самостоятельно