БД моего проекта - MongoDB, для соединения mongo и проекта django (использую версию 4.0.1) я использую движок "djОngo". Соединение с базой работает корректно.
Я хочу хранить в MongoDB данные, получаемые из внешнего API либо записанные через форму на странице сайта, которые могут иметь вложенные списки, или иногда вложенные объекты.
Пример json структуры которая будет записываться через форму и приходить по API:
"FormsID": 1,
"make": {
"1_new": 21,
"2_new": 16,
"right": 80,
"left": 10,
},
"static": [
{
"name": " 1",
"number": 1,
"id":93,
"day": {
"start": 7,
"end": 23,}}]
На данный момент задача реализована частично, объясняю. Мой файл models.py:
from djongo import models
class StaticForms(models.Model):
FormsID=models.ObjectIdField(primary_key=True)
make = models.JSONField()
static=models.JSONField()
day=models.JSONField()
Далее уже в файле views.py я добавляю нужные ключи уже в make, static и day.
Мой файл views.py:
from django.views.decorators.csrf import csrf_exempt
from django.http.response import JsonResponse, HttpResponse
from FirstApp.models import StaticForms
@csrf_exempt
def forms_post(request):
make = {"1_new":request.POST.get("1_new"),
"2_new":request.POST.get("2_new"),
"right":request.POST.get("right"),
"left":request.POST.get("left"),}
static = {"name":request.POST.get("name"),
"number":request.POST.get("number"),
"id":request.POST.get("id")}
day = {"start":request.POST.get("start"),
"end":request.POST.get("end")}
post = StaticForms(FormsID=request.POST.get("FormsID"),
make=make,
static=static,
day=day)
post.save()
return HttpResponse("Inserted")
После добавления данных через Postman я получаю следующую JSON структуру. (отличается от требуемой):
"make": {
"1_new": 21,
"2_new": 16,
"right": 80,
"left": 10,
},
"static": {
"name": " 1",
"number": 1,
"id":93}
"day": {
"start": 7,
"end": 23,}
1) Как мне вложить dict "day" в dict "static" чтобы получилось, как в моем первом примере?
2) почему отсутствует поле "FormsID"?