【发布时间】:2021-12-16 21:20:04
【问题描述】:
我在 Django 中有一个模型,其中一个字段与教师模型具有 fk 关系。我在 django 中遇到了 select_related 并想在我的视图中使用它。但是,我不确定是否在我的查询中使用它。
我的模型:
class Teacher(models.Model):
name = models.OneToOneField(max_length=255, default="", blank=True)
address = models.CharField(max_length=255, default="", blank=True)
college_name = models.CharField(max_length=255, default="", blank=True)
class OnlineClass(models.Model):
teacher = models.ForeignKey(Teacher,on_delete=models.CASCADE)
我的看法:
def get(self, request,*args, **kwargs):
teacher = self.request.user.teacher
classes = Class.objects.filter(teacher=teacher) #confusion is here..............
serializer_class = self.get_serializer_class()
serializer = serializer_class(classes,many=True)
return Response(serializer.data,status=status.HTTP_200_OK)
我已经评论了问题的行或部分。所以我想列出那个老师的所有课程。在这里,我使用了过滤器。但是我们可以在这里使用 select_related 吗?我的理解是,如果我还想显示教师模型的另一个字段,例如 name 或 college_name,那么我必须使用它。否则我的做法是正确的。另外,select_related只用于get api,不用于post api,对吗??
【问题讨论】:
标签: django api django-rest-framework django-views django-select-related