THE PROBLEM

Whenever I send data through post, the data gets validated, I get an output 
with save() method(I get a PK implying that the object was saved?) but the 
creation does not take place in the DB.

 I tried running UsrInDys.objects.create() from the shell and everything 
seemed to work fine from the shell. Just not from the django rest 
serializer method.

 I turned on my PyCharm Debugger and went deep into the .save() serializer 
method. It essentially did the same thing, 
Model.objects.create(**validated_data) and got an object(which implies the 
change to DB did take place, right?). I get the same kind of output when I 
try to create an object from the shell. But the object creation also takes 
place in the DB when I do it from the shell. 

System Details:
> PostgreSQL version 11.0
> Python 3.5
> Django 2.2.1
> Django-restframework 3.8.2
> Linux Mint 18.3

#INSIDE APIVIEW CLASS

def post(self, request):
    usr_in_dys_serializer = UserInDysSerializer(data=request.data)
    if usr_in_dys_serializer.is_valid():
        saved_usr_in_dys = 
usr_in_dys_serializer.save(no_of_days=no_of_days) # Output: UsrInDys object 
(2068) <---- but not being saved to the Database....

#INSIDE SERIALIZER.PY

class UserInDysSerializer(serializers.ModelSerializer):

    class Meta:
        model = UsrInDys
        strt_day = serializers.DateField()
        end_day = serializers.DateField()
        fields = ('strt_day', 'end_day', 'no_of_days')
        extra_kwargs = {
             'no_of_days': {'read_only': True}
        }


#INSIDE MODEL.PY

class UsrInDys(models.Model):
    trip_id = models.AutoField(primary_key=True)
    strt_day = models.DateField()
    end_day = models.DateField()
    no_of_days = models.IntegerField()

    class Meta:
        managed = False
        db_table = 'usr_in_dys'

    def __unicode__(self):
        return [self.strt_day, self.end_day]

#INSIDE SETTTINGS.PY

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': env("USER"),
        'PASSWORD': env("PASSWORD"),
        'HOST': env("HOST"),
        'PORT': '5433',
    }
}

DATABASES['default']['ATOMIC_REQUESTS'] = True

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-rest-framework/3a447175-9c2d-465b-9a05-bd9752501632%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to