Reputation: 11
I want to get enrolled courses for individual student with login I put enrolled model inside the login response put it will give me null instate of courses here is me output and code
output:
{
"token": "4b6d75942dbbbcc484fb6c556b1ce6ebf2c73142",
"user": {
"id": 14,
"username": "enrolltestt",
"mobile_no": "07746505150",
"is_student": true,
"device_id": ""
},
"is_student": true,
"enrolled": [
{
"course": null,
"student": null,
"is_active": false
}
]
here is my views.py
class CustomAuthToken(ObtainAuthToken):
def post(self,request,*args,**kwargs):
serializer=self.serializer_class(data=request.data, context={'request':request})
serializer.is_valid(raise_exception=True)
user=serializer.validated_data['user']
token,created=Token.objects.get_or_create(user=user)
enrolled=StudentCourseEnrollSerializer(context=self.get_serializer_context()).data,
return Response({
'token':token.key,
'user':UserSerializer(user, context=self.get_serializer_context()).data,
'is_student':user.is_student,
'enrolled':enrolled
})
models.py
enteclass User(AbstractUser):
is_student=models.BooleanField(default=False)
is_teacher=models.BooleanField(default=False)
mobile_no=models.CharField(max_length=200)
device_id=models.CharField(max_length=200,blank=True)
USERNAME_FIELD = 'username'
def __str__(self):
return self.username
class Meta:
verbose_name_plural="1.User"
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None,
created=False,**kwargs):
if created:
Token.objects.create(user=instance)
#student course enrollment
class StudentCourseEnrollment(models.Model):
course=models.ForeignKey(Course,on_delete=models.CASCADE,related_name='enrolled_courses')
student=models.ForeignKey(User,on_delete=models.CASCADE,related_name='enrolled_student')
is_active=models.BooleanField(default=False)
enrolled_time=models.DateTimeField(auto_now_add=True)r code here
can someone help me
Upvotes: 1
Views: 44