python - 添加重定向到 CreateAPIView

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

我想在用户创建测验后(添加标题后)将用户重定向到 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>

关于python - 添加重定向到 CreateAPIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65494102/

相关文章:

python - 将 Python Pandas 数据框相乘以获得列中值的乘积

python - Django 服务器返回不同的状态代码

python - 如何使用 python 从图像堆栈中读取时间序列?

python - 在守护进程模式下使用 mod_wsgi 在 Django 站点中导入错误

python - Django应用程序中API调用的问题

python - Win7/Python3.3 : PyLint failed to load its plugins

python - 操作错误 : cursor "_django_curs_<id>" does not exist

validation - 如果用户尝试使用错误的用户名/密码登录,但格式正确,返回的适当 HTTP 状态代码是什么?

django-rest-swagger 没有将 Markdown 文档字符串解析/翻译成 HTML 代码

django - 如何在ubuntu上为django restful服务配置apache2