django бросков 'Прямое назначение передней стороне множества «многие ко многим» запрещено - PullRequest
0 голосов
/ 17 марта 2020

при отправке данных от почтальона я получаю эту ошибку (Django throws 'Прямое назначение передней стороне набора многие-ко-многим запрещено.' Error)

мой класс моделей 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 Meta:
    ordering=('user_name',)

Класс Session (models.Model):

Host=models.ForeignKey(MyUser,on_delete=models.CASCADE,related_name='host')
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.DurationField()
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')
User_Id=models.CharField(max_length=10,blank=True,null=True)
Players_Participating=models.ManyToManyField(MyUser,related_name='related')
def __str__(self):
    return str(self.Host)

class Meta:
    ordering=('Host',)

при публикации данных от почтальона, я получаю эту ошибку (Django выдает 'Прямое назначение передняя сторона множества «многие ко многим» запрещена. 'ошибка)

мой набор просмотра

класс 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 = request.data.get('session_category')
        Session_type=request.data.get('session_type ')
        Created=request.data.get('Created')
        Session_Date=request.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')
        Players_Participating=request.data.get('Players_Participating')
        User_Id=request.data.get('User_Id')
        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.User_Id=User_Id
        #for Players_Participating in Players_Participating:  #by vibhu
            #new.Players_Participating.add(MyUser.objects.get(Players_Participating))#by vibhu
        new.Players_Participating=Players_Participating
        new.save()
        return Response({'Submitted Successfully':True})
    except Exception as error:
        return Response({"message": str(error), "success": False},
         status=status.HTTP_200_OK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...