1

I am saving records in MongoDB using Django rest framework. Migration is as below -

# Generated by Django 3.0.5 on 2021-01-17 10:39

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Demo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('description', models.CharField(default='', max_length=1000)),
                ('user_id', models.IntegerField()),
                ('published', models.BooleanField(default=False)),
            ],
        ),
    ]

But the records in MongoDB doesn't have auto-created id in it

{
    "_id" : ObjectId("6004354240e7097e5b392e5c"),
    "description" : "sdf asdaaaaaaaaaaaaaaaaaaaaaaaaaaa ass d",
    "user_id" : 11,
    "published" : false
}

Inserting records using serializer.save()

Function to add record is as below

def demo_add(request):
user_id=request.user.id
tutorial_data = JSONParser().parse(request)
demo_serializer = DemoSerializer(data=tutorial_data)

if demo_serializer.is_valid():
    demo_serializer.save({"user_id":user_id ,"description":tutorial_data['description']})
    return JsonResponse({"result": True})
return JsonResponse({"result":False,"msg":"Invalid validation"}, status=status.HTTP_400_BAD_REQUEST)
san
  • 11
  • 2

1 Answers1

0

Django already take care of that for you in the background so you don't have to, as you can see:

auto_created=True, primary_key=True, serialize=False, verbose_name='ID')

{
    "_id" : ObjectId("6004354240e7097e5b392e5c"),
    "description" : "sdf asdaaaaaaaaaaaaaaaaaaaaaaaaaaa ass d",
    "user_id" : 11,
    "published" : false
}

First line is your ID, each time an object is created, the ID will be different.

Although without more code is difficult to be more specific

Gaëtan GR
  • 1,380
  • 1
  • 5
  • 21
  • This is record generated in mongodb { "_id" : ObjectId("6004354240e7097e5b392e5c"), "description" : "sdf asdaaaaaaaaaaaaaaaaaaaaaaaaaaa ass d", "user_id" : 11, "published" : false } It can be clearly seen in JSON {} "id" key is not created. – san Jan 17 '21 at 19:28
  • Code used is def demo_add(request): user_id=request.user.id tutorial_data = JSONParser().parse(request) demo_serializer = DemoSerializer(data={"user_id":user_id ,"description":tutorial_data['description']}) if demo_serializer.is_valid(): demo_serializer.save() return JsonResponse({"result": True}) return JsonResponse({"result":False,"msg":"Invalid validation"}, status=status.HTTP_400_BAD_REQUEST) – san Jan 17 '21 at 19:34