KeyError at /api/rooms/create-grade/ 'grade'

Я ни капли не понимаю эту ошибку, я пытаюсь сделать основной метод create, но получаю KeyError

Это код serializer.py

class GradeCreateSerializer(serializers.ModelSerializer):
grade = serializers.ChoiceField(choices=GRADES, source="get_grade_display")

class Meta:
    model = Grade
    fields = ["grade"]
    # ordering = ['-created_date']


def create(self, validated_data):
    user = None
    request = self.context.get("request")
    if request and hasattr(request, "user"):
        user = request.user

    try:
        perms = Perm.objects.get(user=user)
    except:
        perms = None

    if user.role in ['OWNER', 'PARTNER']:
        school = user.owns.first()
    elif perms is not None:
        if user.role == 'STAFF' and perms.can_crt_grade_class:
            school = user.works

    instance = Grade.objects.create(
        grade=validated_data['grade'],
        school=school,
    )
    instance.save()
    return instance

что я делаю не так?

Я нашел решение моей проблемы, это было из-за grade = serializers.ChoiceField(choices=GRADES, source="get_grade_display") это означает, что при использовании ChoiceField для определения вашего поля вам не нужно передавать source="" так как поле использует выбор для его определения

Так что меняемся

 grade = serializers.ChoiceField(choices=GRADES, source="get_grade_display")

to

 grade = serializers.ChoiceField(choices=GRADES)

сделал трюк

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