【问题标题】:Adding a redirect to CreateAPIView添加重定向到 CreateAPIView
【发布时间】:2021-04-06 04:45:28
【问题描述】:

我想在用户创建测验后(添加标题后)将用户重定向到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 通常被浏览器使用,因此重定向没有多大意义。

标签: python django django-rest-framework django-generic-views django-quiz


【解决方案1】:

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

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

from django.shortcuts import redirect

class CreateQuizzView(CreateAPIView):
    serializer_class = CreateQuizSerializer

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

【讨论】:

    猜你喜欢
    • 2017-07-08
    • 1970-01-01
    • 2010-12-15
    • 2011-12-14
    • 2016-04-28
    • 1970-01-01
    • 2015-08-20
    • 2013-01-09
    • 2017-01-17
    相关资源
    最近更新 更多