getting 'cannot unpack non-iterable int object' when creating a model in Django

dhruv singhal

My models.py

from django.db import models
from django.contrib.auth.models import User
import datetime
from django.utils import timezone
    # Create your models here.
    
class LiveClass(models.Model):

    standard = models.IntegerField()
    no_of_students_registered = models.IntegerField(default=0)
    class Meta:
        verbose_name_plural = 'Class'
    
    def __str__(self):
        return str(self.standard) + ' class'
    
class User_details(models.Model):
    name = models.OneToOneField(User, on_delete = models.CASCADE, max_length=30)
    standard = models.IntegerField(default=0)
    email = models.EmailField()
    mobile_number = models.IntegerField()
    class Meta:
        verbose_name_plural = 'User_details'

     
    def __str__(self):
        return str(self.name)
    
class Mentor(models.Model):
    name = models.CharField(max_length=30)
    details = models.TextField()
    ratings = models.FloatField(default=0)
    class Meta:
        verbose_name_plural = 'Mentors'
    
    def __str__(self):
        return self.name
    
class LiveClass_details(models.Model):
    standard = models.ForeignKey(LiveClass, on_delete=models.CASCADE)
    chapter_name = models.CharField(max_length=30)
    chapter_details = models.TextField()
    mentor_name = models.ForeignKey(Mentor, max_length=30, on_delete=models.CASCADE)
    class_time = models.DateTimeField()
    end_time = models.DateTimeField(default=timezone.now())
    isDoubtClass = models.BooleanField(default=False)
    doubtsAddressed = models.IntegerField(default=0)
    no_of_students_registered = models.IntegerField(default=0)
    no_of_students_attended = models.IntegerField(default=0)
    class Meta:
        verbose_name_plural = 'LiveClass_details'
        
    def __str__(self):
        return self.chapter_name
    
    
    
class SavedClass(models.Model):
    class_details = models.ForeignKey(LiveClass_details, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    
    class Meta: 
        verbose_name_plural = 'SavedClasses'
    
    def __str__(self):
        return 'SavedClass : ' + str(self.class_details)
    
class RegisteredClass(models.Model):
    class_details = models.ForeignKey(LiveClass_details, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
        
    class Meta:
        verbose_name_plural = 'RegisteredClass'
        unique_together = ['class_details', 'user']
    
    def __str__(self):
        return 'Registered Class' + str(self.class_details)
    

serializers.py

from rest_framework import serializers
from . import models



class LiveClass_serializer(serializers.ModelSerializer):
    class Meta:
        model = models.LiveClass
        fields = '__all__'


class SavedClass_serializer(serializers.ModelSerializer):
    class Meta:
        model = models.SavedClass
        fields = '__all__'

class User_details_serializer(serializers.ModelSerializer):
    saved_class = SavedClass_serializer()
    class Meta:
        model = models.User_details
        fields = '__all__'


class LiveClass_details_serializer(serializers.ModelSerializer):
    class Meta:
        model = models.LiveClass_details
        fields = '__all__'

class Mentor_serializer(serializers.ModelSerializer):
    class Meta:
        model = models.Mentor
        fields = '__all__'

class Registered_serializer(serializers.ModelSerializer):
    class Meta:
        model = models.RegisteredClass
        fields = '__all__'

my views.py

@login_required
@api_view(['GET', 'DELETE'])
def RegisterClassId(request, id):
    if request.method == 'GET':
        try:
            registered_class = models.RegisteredClass.objects.create(class_details=models.LiveClass_details.objects.get(id), user=request.user)
            registered_class.save()
            registered_live_class = models.LiveClass_details.objects.get(id=id)
            registered_live_class.no_of_students_registered += 1
            registered_live_class.save()
        except Exception as e:
            print(e)
       
        return Response(status=status.HTTP_201_CREATED)

    elif request.method == 'DELETE':

        registered_class = models.RegisteredClass.objects.create(class_details=id, user=request.user)
        registered_class.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
    

my urls.py

urlpatterns = [
    path('liveclass/', views.LiveClassView.as_view(), name='liveclass'),
     path('liveclass/<int:id>', views.LiveClassViewId.as_view()),
    path('mentors/', views.ListMentors.as_view(), name='mentors'),
    path('userdetails/', views.ListUserDetails.as_view(), name='user-details'),
    path('saved/', views.SavedClassView.as_view()),
    path('registerclass/', views.RegisterClass),
    path('registerclass/<int:id>/', views.RegisterClassId),
]

I am trying to add a row in RegsiteredClass model using id passed to the view which is liveClass_details model id and using current login user and after that i am trying to update a partiular entry in LiveClassDetails model but it is giving me above error , please help i have seen other related questions but they are not solving my error

Alex Hall

Change

models.LiveClass_details.objects.get(id)

to

models.LiveClass_details.objects.get(id=id)

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Django : cannot unpack non-iterable int object

I am getting a "TypeError: cannot unpack non-iterable int object"

TypeError: cannot unpack non-iterable int object in Django views function

Python - "cannot unpack non-iterable int object" when importing json data into database

Python error "cannot unpack non-iterable int object"

TypeError: cannot unpack non-iterable int object

Python - Cannot unpack non-iterable int object

Python: TypeError: cannot unpack non-iterable int object

cannot unpack non-iterable int object. BMI Calculator

TypeError: cannot unpack non-iterable int object (Python)

"TypeError: cannot unpack non-iterable int object" with filter function

Django: cannot unpack non-iterable int obj

cannot unpack non-iterable ModelBase object in django

Python Django: TypeError: cannot unpack non-iterable MatchAll object

Django - cannot unpack non-iterable ManyRelatedManager object

Django cannot unpack non-iterable 'Q' object

Cannot unpack non-iterable SerializerMethodField object in Django DRF

How to fix "cannot unpack non-iterable NoneType object" error in django admin whilst using custom user model

Cannot unpack non-iterable object

Why am I getting TypeError: cannot unpack non-iterable builtin_function_or_method object?

Using throttler and joblib for heavy jobs and getting "cannot unpack non-iterable function object"

I am getting: TypeError: cannot unpack non-iterable NoneType object, but I am returning a tuple

(TypeError: cannot unpack non-iterable int object) for inversion counter using merge sort

numpy array , TypeError: cannot unpack non-iterable numpy.int64 object

cannot unpack non-iterable int object for given recurrence relationship for two coupled sequences?

TypeError: cannot unpack non-iterable int object, Plus Minus problem in HackerRank

TypeError: cannot unpack non-iterable int object occurring with grayscale file

Inversion Counting Algorithm implementation in Python,cannot unpack non-iterable int object

Django - (Restrict content from blocked users) Cannot unpack non-iterable ManyRelatedManager object