при отправке данных от почтальона я получаю эту ошибку (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)