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
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.
Comments