亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“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 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號