为了账号安全,请及时绑定邮箱和手机立即绑定

“QuerySet”对象没有属性“completed”

“QuerySet”对象没有属性“completed”

凤凰求蛊 2023-07-18 15:46:23
在我的测验应用程序中,每个用户都可以进行多次尝试。我的模型设置如下:class Quiz(models.Model):    title = models.CharField(max_length=15)    slug = models.SlugField(blank=True)    questions_count = models.IntegerField(default=0)class Question(models.Model):    quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)    label = models.CharField(max_length=1000)class Choice(models.Model):    question = models.ForeignKey(Question, on_delete=models.CASCADE)    answer = models.CharField(max_length=100)    is_correct = models.BooleanField('Correct answer', default=False)class QuizTaker(models.Model):    user = models.ForeignKey(User, on_delete=models.CASCADE)    quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)    correct_answers = models.IntegerField(default=0)    completed = models.BooleanField(default=False)    attempt_number = models.PositiveIntegerField(default=0)当我尝试确定给定的测验是否已完成时,我的序列化程序中出现错误:class MyQuizListSerializer(serializers.ModelSerializer):    questions_count = serializers.SerializerMethodField()    completed = serializers.SerializerMethodField()    progress = serializers.SerializerMethodField()    score = serializers.SerializerMethodField()    class Meta:        model = Quiz        fields = ['id', 'title', 'type_of_content', 'song', 'slug',         'questions_count', 'completed', 'score', 'progress']        read_only_fields = ['questions_count', 'completed', 'progress']    def get_completed(self, obj):        try:            quiztaker = QuizTaker.objects.filter(user=self.context['request'].user, quiz=obj)            for attempt in quiztaker:                return quiztaker.completed   #the error comes from this line        except QuizTaker.DoesNotExist:            return None谁能告诉我为什么我会收到此错误?我正在过滤,因为用户可以进行多次尝试,因此我得到一个查询集,因此我必须循环遍历它。该QuizTaker模型确实有一个completed字段,那么问题是什么?
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

简单的错误,该quiztaker对象是一个QuerySet.

您应该使用循环attempt中分配的变量for

for attempt in quiztaker:    return attempt.completed   #the error comes from this line


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信