添加重定向到 CreateAPIView

Adding a redirect to CreateAPIView

我想在用户创建测验(添加标题后)后将用户重定向到 AddQuestionsView

我的创建测验

class CreateQuizzView(CreateAPIView):
    serializer_class = CreateQuizSerializer

我的serializers.py文件

class CreateQuizSerializer(serializers.ModelSerializer):
    class Meta:
        model = Quizzer
        fields = ['title']

    def create(self, validated_data):
        user = self.context['request'].user
        new_quiz = Quizzer.objects.create(
            user=user,
            **validated_data
        )
        return new_quiz

我可以通过添加任何 Mixin 或更改需要更改 GenericView 来添加重定向吗?

APIView 通常 不会 被浏览器使用,或者至少不会直接被浏览器使用,因此重定向没有多大意义。这个想法是某些程序发出 HTTP 请求,从而检索响应。大多数 API 处理程序无论如何都不会默认遵循重定向。

但是您可以通过重写 post 方法进行重定向:

from django.shortcuts import redirect

class CreateQuizzView(CreateAPIView):
    serializer_class = CreateQuizSerializer

    def post(self, *args, **kwargs):
        super().post(*args, **kwargs)
        <b>return redirect('<i>name-of-the-view</i>')</b>