"message": "Поле 'id' ожидало число, но получило 'Ashu'." - PullRequest
0 голосов
/ 05 марта 2020

моя модель

from django.db import models
import datetime
from django.contrib.auth.models import (
    BaseUserManager, AbstractBaseUser
)
from django_countries.fields import CountryField

class MyUserManager(BaseUserManager):

    def create_user(self, email, date_of_birth, password=None):
        """
        Creates and saves a User with the given email, date of
        birth and password.
        """
        if not email:
            raise ValueError('Users must have an email address')

        user = self.model(
            email=self.normalize_email(email),
            date_of_birth=date_of_birth,
        )

        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, date_of_birth, password=None):
        """
        Creates and saves a superuser with the given email, date of
        birth and password.
        """
        user = self.create_user(
            email,
            password=password,
            date_of_birth=date_of_birth,
        )
        user.is_admin = True
        user.save(using=self._db)
        return user



class MyUser(AbstractBaseUser):

    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True)
    user_name=models.CharField(max_length=10,blank=True,null=True,unique=True)
    date_of_birth=models.DateField(null=True,blank=True) 
    mobile_number=models.CharField(max_length=20,blank=True,null=True)
    address=models.CharField(max_length=100,blank=True,null=True)
    country=models.CharField(max_length=20,blank=True,null=True)
    joining_date=models.DateField(null=True,blank=True)

    Rating_CHOICES = (
    (1, 'Poor'),
    (2, 'Average'),
    (3, 'Good'),
    (4, 'Very Good'),
    (5, 'Excellent')
    )
    Rating=models.IntegerField(choices=Rating_CHOICES,default=1)

    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    objects = MyUserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['date_of_birth']

    def __str__(self):
        return str(self.user_name)

    def has_perm(self, perm, obj=None):
        return True

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.is_admin

class IntrestedIn(models.Model):

    game=( 
        ('cricket','cricket'),
        ('football','football'),
        ('basketball','basketball'),
        ('hockey','hockey'),
        ('gym','gym'),
        ('baseball','baseball'),
    )
    line=(
        ('Beginner','Beginner'),
        ('Intermediate','Intermediate'),
        ('Advance','Advance'),
    )
    Sport=models.CharField(max_length=50,choices=game)
    Level=models.CharField(max_length=50,choices=line)
    image=models.FileField(blank=True, default="",
     upload_to="media/images",null=True)
    user=models.ForeignKey(MyUser,on_delete=models.CASCADE,
    related_name='select_user',null=True)

    def __str__(self):
        return str(self.Sport)
class Session(models.Model):

    Host=models.ForeignKey(MyUser,on_delete=models.CASCADE)
    game=( 
        ('cricket','cricket'),
        ('football','football'),
        ('basketball','basketball'),
        ('hockey','hockey'),
        ('gym','gym'),
        ('baseball','baseball'),
    )

    Sport=models.CharField(max_length=20,choices=game)   
    SPORT=(
        ('Indoor','Indoor'),
        ('Outdoor','Outdoor'),
    )
    Sports_category=models.CharField(max_length=10,choices=SPORT)
    SESSIONS=(
        ('General','General'),
        ('Business','Business'),
    )
    Session_category=models.CharField(max_length=15,choices=SESSIONS)
    TYPE=(
        ('Paid','Paid'),
        ('Free','Free'),
    )
    Session_type=models.CharField(max_length=10,choices=TYPE)
    Created=models.DateField(null=True,blank=True)
    Session_Date=models.DateField(null=True,blank=True)
    Location=models.ForeignKey(MyUser,related_name='street',on_delete=models.CASCADE)
    Player=models.CharField(max_length=100,blank=False)
    Start_time=models.TimeField(auto_now=False, auto_now_add=False)
    End_time=models.TimeField(auto_now=False, auto_now_add=False)
    Duration=models.CharField(max_length=30,blank=False)
    status=(
        ('1','Active'),
        ('2','UnActive'),

    )
    Status=models.CharField(max_length=20,choices=status)
    Equipment=models.TextField()
    Duration=models.CharField(max_length=20,blank=False)
    Level=models.ForeignKey(IntrestedIn,blank=True,on_delete=models.CASCADE)
    GENDER=(
        ('Male','Male'),
        ('Female','Female'),
        ('Male and Female','Male and Female'),
        ('Other','Other'),   
    )
    Gender=models.CharField(max_length=20,choices=GENDER,blank=True)
    Fee=models.CharField(max_length=50,blank=True,default='0')

    def __str__(self):
        return str(self.Sport)

мой просмотр

class SessionViewSet(viewsets.ViewSet):
    def create(self, request):
        try:

            Host= request.data.get('Host')
            Sport = request.data.get('Sport')
            Sports_category = request.data.get('sports_category')
            #Location = request.data.get('Location')
            Session_category = data.get('session_category')
            Session_type=data.get('session_type ')
            Created=data.get('Created')
            Session_Date=data.get('Session_Date')
            Location=request.data.get('Location')
            Start_time=request.data.get('Start_time')
            End_time=request.data.get('End_time')
            Duration=request.data.get('Duration')
            Level=request.data.get('Level')
            Player=request.data.get('Player')
            Gender=request.data.get('Gender')
            Fee=request.data.get('Fee')
            Equipment=request.data.get('Equipment')
            new=Session()

            new.Host=MyUser.objects.get(user_name=Host)
            new.Sport=Sport
            new.Sports_category=sports_category
            new.Session_category=session_category
            new.Session_type=session_type
            new.Created=Created
            new.Session_Date=Session_Date
            new.Location=MyUser.objects.get(address=Location)
            new.Start_time=Start_time
            new.End_time=End_time
            new.Duration=Duration
            new.Level=IntrestedIn.objects.get(Level=Level)
            new.Player=Player
            new.Equipment=Equipment
            new.save()
            return Response({'submitted succesfully':True})
        except Exception as error:
            return Response({"message": str(error), "success": False},
             status=status.HTTP_200_OK)

    def list(self, request):
        try:
            search = request.GET.get('search')
            sport=request.GET.get('sport')
            if search:
                users = Session.objects.filter(Host=search)
                page = request.GET.get('page')
                paginator = Paginator(users,1)
                try:
                    user = paginator.page(page)
                except PageNotAnInteger:
                    user = paginator.page(1)
                except EmptyPage:
                    user = paginator.page(paginator.num_pages)
                use = []

                for user in users:
                    use.append({
                        'Host':user.Host.user_name,
                        'Sport':user.Sport,
                        'Sports_category':user.Sports_category,
                        'Session_category':user.Session_category,
                        'Session_type':user.Session_type,
                        'Created':user.Created,
                        'Session_Date':user.Session_Date


                        })
                return Response({'output':use})
            if sport:
                users = Session.objects.filter(Sport=sport)
                page = request.GET.get('page')
                paginator = Paginator(users,1)
                try:
                    user = paginator.page(page)
                except PageNotAnInteger:
                    user = paginator.page(1)
                except EmptyPage:
                    user = paginator.page(paginator.num_pages)
                use = []

                for user in users:
                    use.append({
                        'Host':user.Host.user_name,
                        'Sport':user.Sport,
                        #'Sports_category':user.Sports_category,
                        #'Session_category':user.Session_category,
                        #'Session_type':user.Session_type,
                        #'Created':user.Created,
                        #'Session_Date':user.Session_Date


                        })
                return Response({'out':use})

            else :
                users = Session.objects.all()
                page = request.GET.get('page')
                paginator = Paginator(users,1)
                try:
                    user = paginator.page(page)
                except PageNotAnInteger:
                    user = paginator.page(1)
                except EmptyPage:
                    user = paginator.page(paginator.num_pages)
                use = []

                for user in users:
                    use.append({
                       'Host':user.Host.user_name,
                       'Sport':user.Sport,
                       'Sports_category':user.Sports_category,
                       'Session_category':user.Session_category,
                       'Session_type':user.Session_type,
                       'Created':user.Created,
                       'Session_Date':user.Session_Date

                        })
            return Response({"success":True, "users":use, "pages":paginator.num_pages})

        except Exception as error:
            traceback.print_exc()
            return Response({"message": str(error), "success": False}, status=status.HTTP_200_OK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...