Бизнес и ИТ

enter image description here Модель

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

Помогите, пожалуйста, что не так. Я могу получить любые данные отсюда.

Вернуться на верх