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