Django / DRF - Получена ошибка AttributeError при попытке получить значение для поля `users_answers_set` на сериализаторе `TestTakerSerializer`.

Всем. Работа с DRF дала мне эту ошибку:

models.py:

class TestTaker(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    test = models.ForeignKey(Test, on_delete=models.CASCADE)



class UsersAnswers(models.Model):
    test_taker = models.ForeignKey(TestTaker, on_delete=models.CASCADE)
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    answer = models.ForeignKey(Answer, on_delete=models.CASCADE)

 

serializers.py

class UsersAnswersSerializer(serializers.ModelSerializer):
    class Meta:
        model = UsersAnswers
        fields = "__all__"


class TestTakerSerializer(serializers.ModelSerializer):
    users_answers_set = UsersAnswersSerializer(many=True)

    class Meta:
        model = TestTaker
        fields = "__all__"

И я получаю:

Got AttributeError when attempting to get a value for field `users_answers_set` on serializer `TestTakerSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `TestTaker` instance.
Original exception text was: 'TestTaker' object has no attribute 'users_answers_set'.

Я попытался добавить параметр "source" в users_answers_set, но ничего не изменилось. Спасибо.

попробуйте usersanswers_set вместо users_answers_set.

или

вы можете определить пользовательское related_name в вашей модели:

class UsersAnswers(models.Model):
    test_taker = models.ForeignKey(TestTaker, related_name="users_answers_set" , on_delete=models.CASCADE)
Вернуться на верх