Бизнес и ИТ
class schooldetail(models.Model):
schoolbranch = models.CharField(max_length=100, unique=True,blank=False)
name = models.CharField(max_length=100,blank=False)
description = models.TextField(blank=True)
email=models.EmailField(max_length=50,blank=True)
contactno=models.CharField(max_length=50,blank=True)
accountname=models.CharField(max_length=50,blank=False)
bsb=models.CharField(max_length=6)
accountno=models.CharField(max_length=10)
def __str__(self) -> str:
return self.schoolbranch
class studentdetails(models.Model):
first_name =models.CharField(max_length=50,blank=True, null=True)
last_name = models.CharField(max_length=50,blank=True, null=True)
dob=models.CharField(max_length=15,blank=True, null=True)
MALE=1,
FEMALE=2
OTHER=3
STATUS_CHOICES=(
('MALE','Male'),
('FEMALE','Female'),
('OTHER','Other')
)
sex=models.CharField(max_length=10,choices=STATUS_CHOICES,blank=True, null=True)
CITIZEN = 1
PERMANENT = 2
WORKING = 3
STUDENT = 4
TRAVEL = 5
RESIDENTAL_STATUS = ((CITIZEN, 'Australian Citizenship'),
(PERMANENT, 'Permanent Resident.'),
(WORKING, 'Working Visa'),
(STUDENT, 'Student Visa'),
(TRAVEL, 'Travel Visa'),)
residental_status=models.CharField(max_length=50,choices=RESIDENTAL_STATUS,blank=True, null=True)
user=models.ForeignKey(to=User,on_delete=models.CASCADE)
def __str__(self) -> str:
return self.first_name
class EnrollmentModel(models.Model):
student=models.ForeignKey(studentdetails,on_delete=models.CASCADE)
YES=1
NO=0
COND_STATUS=(
('YES','Yes'),
('NO','No')
)
medical_condition =models.BooleanField(default=False)
medication_routine = models.BooleanField(default=False)
any_restriction = models.BooleanField(default=False)
agree_condition = models.BooleanField(default=False)
agree_declaration = models.BooleanField(default=False)
PROCESS='p',
CANCEL='c'
APROVED='a'
ENROLLED='e'
SUBMIT='s'
ENROLLMENT_STATUS=(
('PROCESS','Process'),
('CANCEL','Cancel'),
('APROVED','Aproved'),
('ENROLLED','Enrolled'),
('SUBMIT','Submit'),
)
enrolment_status=models.CharField(max_length=20,choices=ENROLLMENT_STATUS)
FULL='f',
UNPAID='n'
PARTIAL='p'
PAYMENT_STATUS=(
('FULL','Full'),
('UNPAID','UnPaid'),
('PARTIAL','Partial')
)
payment_status = models.CharField(max_length=10,choices=PAYMENT_STATUS)
application_date=models.DateTimeField(auto_now=True)
school = models.ForeignKey(
schooldetail,
on_delete=models.CASCADE,
blank=True,
null=True,
)
Serializer
from rest_framework import serializers
from enrolments.models import studentdetails,schooldetail
from .models import EnrollmentModel
from enrolments.serializers import StudentDetailSerializer,SchoolDetailSerializer
class EnrollSerializer(serializers.ModelSerializer):
school= serializers.SerializerMethodField('get_school')
def get_school(self, instance):
school=instance.schoolbranch
return school
student= serializers.SerializerMethodField('get_student')
def get_student(self, instance):
student=instance.first_name
return student
class Meta:
model:EnrollmentModel
fields=['id','school','student','enrolment_status','payment_status']
- просмотров
@api_view(['GET'])
@permission_classes((AllowAny,))
def full_list(request):
try:
school_queryset = EnrollmentModel.objects.all()
serializer = EnrollSerializer(school_queryset, many=True)
return Response(serializer.data)
except schooldetail.DoesNotExist:
return Response(status = status.HTTP_404_NOT_FOUND)
Result: AssertionError at /enroll/studentenroll/
В классе EnrollSerializer отсутствует атрибут "Meta.model"
Метод запроса: GET URL запроса: http://192.168.1.132:8000/enroll/studentenroll/. Версия Django: 4.1.2 Тип исключения: AssertionError Значение исключения:
В классе EnrollSerializer отсутствует атрибут "Meta.model"
Местонахождение исключения: D:\react\BTSBackend\venv\lib\site-packages\rest_framework\serializers.py, строка 1032, in get_fields Поднято во время: enrollstudent.views.full_list Python Executable: D:\react\BTSBackend\venv\Scripts\python.exe Версия Python: 3.10.2 Python Path:
['D:\react\BTSBackend\API', 'C:\Users\ind_s\AppData\Local\Programs\Python\Python310\python310.zip', 'C:\Users\ind_s\AppData\Local\Programs\Python\Python310\DLLs', 'C:\Users\ind_s\AppData\Local\Programs\Python\Python310\lib', 'C:\Users\ind_s\AppData\Local\Programs\Python\Python310', 'D:\react\BTSBackend\venv', 'D:\react\BTSBackend\venv\lib\site-packages']
Время сервера: Fri, 11 Nov 2022 08:51:24 +1000
Помогите, пожалуйста, что не так. Я могу получить любые данные отсюда.