Django/DRF-试图获取序列化程序"TestTakerSerializer"上字段"



每个人。我想在DRF做一个测试。但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'.

我试着加上";源";参数设置为users_answer_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)

最新更新