如何过滤 django 序列化器字段?

我对 Django REST FRAMEWORK 有疑问。


class UserTest(models.Model):

    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='usert', null=True, blank=True)

    question = models.ForeignKey(Question, related_name='userque', on_delete=models.CASCADE, null=True, blank=True)

    option = models.ForeignKey(Option, related_name='opt', on_delete=models.CASCADE, null=True, blank=True)


    def __str__(self):

        return self.user.username + ' - ' + self.question.question 

这是我的 UserTest 模型。当用户进行测试时。用户将在下拉列表中看到所有问题以及所有选项。但我只想要用户选择哪个问题的选项。但现在我得到了所有的选择。


class TestSerializer(serializers.ModelSerializer):

    question = serializers.SlugRelatedField(queryset=Question.objects.all(), slug_field='question')

    option = serializers.SlugRelatedField(queryset=Option.objects.all(), slug_field='option')


    class Meta:

        model = UserTest

        fields = ('question', 'option')

这是我的测试序列化器。


class Question(models.Model):

    lesson = models.ForeignKey(Lesson, related_name="lquestion", on_delete=models.CASCADE, null=True, blank=True)

    question = models.TextField()


    def __str__(self):

        return self.question


这是我的问题模型


class Option(models.Model):

    question = models.ForeignKey(Question, related_name='choices', on_delete=models.CASCADE)

    option = models.CharField(max_length=100)

    is_correct = models.BooleanField(default=False)


    def __str__(self):

        return self.option + ' - ' + self.question.question


这是我的选择模型。


我希望你能明白我想问的问题。当用户选择问题时。我只想在下拉列表中显示该问题的选项。提前致谢!


潇潇雨雨
浏览 95回答 1
1回答

精慕HU

模型结构不正确。有。Test_ questions有. Questions_optionsoption在模型中移除,然后从模型中UserTest移除。questionOption我不知道lesson是什么,在这里更有意义UserTest,但我要离开它,因为我实际上不知道你的结构。class Question(models.Model):     lesson = models.ForeignKey(Lesson, related_name="lquestion", on_delete=models.CASCADE, null=True, blank=True)     question = models.TextField()     options = models.ManyToManyField(Option)              def __str__(self):             return self.question您的Option模型不应该有任何其他关系。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python