Rest_framework import issue

Viewed 1607

Iam trying to implement django rest framework. I am having this error:

File "F:\....\urls.py", line 19, in <module>
    from Userinfo import views
File "F:\....\Userinfo\views.py", line 8, in <module>
    from .serializers import usersSerializer
File "F:\.....\Userinfo\serializers.py", line 2, in <module>
    from rest_framework import users
ImportError: cannot import name 'users' from 'rest_framework' (C:\Users\....\rest_framework\__init__.py)

My urls.py code:

from django.contrib import admin
from django.urls import path, include
from rest_framework.urlpatterns import format_suffix_patterns
from Userinfo import views
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls')),
path('UserData', views.UserList.as_view()),
]*

my views.py code:

from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import users
from .serializers import usersSerializer

class UserList(APIView):
    def get(self, request):
         user1 = users.objects.all()
         serializer = usersSerializer(user1, many = True)
         return Response(serializer.data)*

my serializers.py code:

 from rest_framework import serializers
 from rest_framework import users
 class usersSerializer(Serializers.ModelSerializer):
 class Meta:
    model = users
    fields = '__all__'*

my models.py code:

from django.db import models

class users(models.Model):
   Name = models.CharField(max_length=50)
   id = models.IntegerField(primary_key=True)
   DocumentCount = models.IntegerField()
   Role = models.CharField(max_length=15)
def _str_(self):
   return self.name + self.id*

The code might be incomplete but I'll provide as much information as possible.

1 Answers

In your serializers.py:

from rest_framework import serializers
# from rest_framework import users # remove this
from django.contrib.auth import get_user_model # add this

User = get_user_model()

class usersSerializer(Serializers.ModelSerializer):

    class Meta:
        model = Users
        # model = get_user_model() # this will work too
        fields = '__all__'
Related