Как я могу использовать `return HttpResponseRedirect(reverse("some-path", args=[slug]))` с user_agent?
Я ищу способ использовать (в views.py)
return HttpResponseRedirect(reverse("some-path", args=[slug]))
где я могу определить, на какой шаблон будет перенаправлен пользователь в зависимости от устройства (с помощью user_agent
). Проблема связана с представлением на основе класса с методами get и post. В моей функции post у меня есть эта нерешенная проблема в моем return утверждении.
Я нигде не смог найти ответ: какой лучший подход для этой ситуации?
Проблема в том, что перенаправление использует только url.py и я не знаю, где и как я могу написать if утверждение об устройствах, как в обычной функции просмотра:
if user_agent.is_pc:
return render(
request,
'dev/registration-success_pc_tablet.html',
{
'my_email': my_email
})
elif user_agent.is_mobile:
return render(
request,
'dev/registration-success_mobile.html',
{
'my_email': my_email
})
elif user_agent.is_tablet:
return render(
request,
'dev/registration-success_pc_tablet.html',
{
'my_email': my_email
})
Я установил MIDDLEWARE, INSTALLED_APPS для user_agent. Проблема только в этом конкретном случае, который я описал в своем вопросе.
Код, над которым я бьюсь (последняя строка):
def post(self, request, slug):
comment_form = CommentForm(request.POST)
user_feedback = UserFeedback(request.POST)
user_agent = get_user_agent(request)
post = EssayCls.objects.get(slug=slug)
context = {
"post": post,
"post_tags": post.tags.all(),
"comment_form": comment_form,
'comments': post.comments.all().order_by("-id")
}
if user_feedback.is_valid():
user_email = user_feedback.cleaned_data['email']
send_me_message, was_created = SendMeMessage.objects.get_or_create(email=user_email)
post.guest.add(send_me_message)
return redirect('confirm-registration', slug=slug)
if comment_form.is_valid():
comment = comment_form.save(commit=False)
comment.post = post
comment.save()
return HttpResponseRedirect(reverse("some-path", args=[slug]))