我想为一所学校命名为“调查API”,其名称为具有Dango-Rest-Framework的教师。我想创建一种方法,以便用户可以张贴老师的姓名(或教师模型中老师的ID)并自动在该老师的分数字段中添加一个点。
这是我的老师模型课:
class Teacher(models.Model):
name = models.CharField(max_length=255)
description = models.TextField(blank=True,null=True)
voting = models.IntegerField(default=0)
和views.py:
class TeachersViewSet(viewsets.ModelViewSet):
queryset = models.Teachers.objects.all()
serializer_class = serializers.TeachersSerializer
authentication_classes = (TokenAuthentication,)
所以我想要的是前端用户可以调用api并告诉该教师的投票字段加1分(他们不需要提及数字1,因为api总是必须为该点加1分每个请求)。是否必须创建一个新的视图集?老实说,我不知道从哪里开始。因此,我们将不胜感激。
答案 0 :(得分:3)
检出DRF的routing for extra actions。我发现它超级有用。对于您的情况,您可以添加以下内容:
dig
假设您使用的是DRF的标准路由,这将沿class TeachersViewSet(viewsets.ModelViewSet):
...
@action(detail=True)
def vote(self, request, pk=None):
Teacher.objects.filter(pk=pk).update(voting=F('voting') + 1)
return Response()
的行提供URL。当然,这里有很多修改,但这是一个起点。
答案 1 :(得分:1)
将const lastOne = keysToSameValueAsKeys("tic", "tac", "toe");
// const lastOne: {tic: "tic", tac: "tac", toe: "toe"};
公开为一个API,该API可以接收教师ID并为其添加一个投票
覆盖ViewSet's Update method
方法。
update