如何解决如何过滤Django序列化器字段?
我对Django REST FRAMEWORK有疑问。
request(){
this.http
.get('assets/uAPIwork.php')
.subscribe(res=>{console.log(res)});
}
这是我的UserTest模型。并且当用户进行测试时。用户将在下拉列表中看到所有问题以及所有选项。但我只希望用户选择哪个问题的选项。但是现在我得到了所有选择。
HttpErrorResponse {headers: HttpHeaders,status: 200,statusText: "OK",url: "http://localhost:4200/assets/uAPIwork.php",ok: false, …}
这是我的测试序列化器。
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',blank=True)
option = models.ForeignKey(Option,related_name='opt',blank=True)
def __str__(self):
return self.user.username + ' - ' + self.question.question
这是我的问题模型
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')
这是我的选择模型。
我希望你有我想问的问题。当用户选择问题时。我只想在下拉列表中显示该问题的选项。预先感谢!
解决方法
模型结构不正确。 Test
有questions
。 Questions
有options
。
在option
模型中删除UserTest
,然后从question
模型中删除Option
。
我不知道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
模型不应具有任何其他关系。
以下是如何对其进行序列化:https://www.django-rest-framework.org/api-guide/relations/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。