4

i am using cassandra database and django, i want to serialize the data using Serializers from Django-rest-frame work.

models.py

import uuid
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model

class Users(Model):
    read_repair_chance = 0.05 # optional - defaults to 0.1
    uid      = columns.UUID(primary_key=True, default=uuid.uuid4)
    age    = columns.Integer(index=True)
    phno    = columns.Text(required=True)
    uname     = columns.Text(required=True)

    class Meta:
        verbose_name_plural = "user_details"

serializers.py

from rest_framework import serializers
from user_details.models import Users

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = Users
        fields = ('uid','uname','age','phno')

views.py

from user_details.models import Users
from django.http import Http404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from user_details.serializers import UserSerializer

class UserList(APIView):
    def get(self, request , format = None):
        users = Users.objects.all()
        serializer = UserSerializer(users,many = True)
        return Response(serializer.data)

error

AttributeError at /show_details/
type object 'Users' has no attribute '_meta'
Request Method: GET
Request URL:    http://127.0.0.1:8000/show_details/
Django Version: 1.8.5
Exception Type: AttributeError
Exception Value:    
type object 'Users' has no attribute '_meta'

what changes should i make to display the data in serialize json format. i have tried the similar serializer.py file with MySQL data to display it, for that it is working fine. what i understood is when i call Users.objects.all() it display

>>> from user_details.models import Users
>>> Users.objects.all()
<cassandra.cqlengine.query.ModelQuerySet object at 0x045614F0>
>>>

so how to retrieve data and serialize it.

aditya mathur
  • 75
  • 1
  • 2
  • 6
  • Similar question: http://stackoverflow.com/questions/31257955/django-restful-api-error-type-object-user-has-no-attribute-meta – Rahul Gupta Oct 18 '15 at 14:00
  • possible duplicate of...http://stackoverflow.com/questions/12338091/django-model-object-has-no-attribute-meta-in-class-based-view – Amrit Jan 09 '17 at 12:22

1 Answers1

0

I have the same Issue but after making following modification it works perfectly.

serializers.py

  • instead of using serializers.ModelSerializer, use serializers.Serializer.

    class UserSerializer(serializers.Serializer):
        uid = serializers.UUIDField()
        age = serializers.IntegerField()
        phno = serializers.CharField()
        uname = serializers.CharField()
    
        def create(self, validated_data):
            return Users.objects.create(validated_data)
    
        def update(self, instance, validated_data):
            instance.uid = validated_data.get('uid', instance.uid)
            instance.age = validated_data.get('age', instance.age)
            instance.phno = validated_data.get('phno', instance.phno)
            instance.uname = validated_data.get('uname', instance.uname)
            instance.save()
            return instance
    
binpatel31
  • 85
  • 9