Как я могу перенаправить это на slug url в django?
У меня есть одно детальное представление и одна функция в моем views.py. Я включил форму в шаблон детального представления list_detail.html. и при успешном размещении формы. Она перенаправляется на всю страницу (в основном на главную страницу). Теперь я хочу, чтобы она перенаправляла на страницу детального просмотра, которая выглядит так. И для этого мне нужно передать значение slug этого объекта List models specific. Но я могу построить логику здесь. Я новичок в django.
path('list/<slug:slug>/', TheirDetailView.as_view(),name='list_detail'),
path('all',views.all, name='all'),
path('create_comment',views.create_comment, name='create_comment'),
class TheirDetailView(DetailView):
model = List
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
modell = Review.objects.all()
context["modam"] = modell
context["form"] = ReviewForm()
return context
def create_comment(request):
context = {}
form = ReviewForm(request.POST or None)
if form.is_valid():
form.save()
return redirect('app:all')
else:
context['form'] = form
return render(request, "app/create_comment.html", context)
from django.urls import reverse
redirect_url = reverse("list_detail", args=(post id,))
return redirect(redirect_url)
Эй немного погуглил и нашел это в stackoverflow link добавил эту строку вместо моего редиректа в моей функции create_comment if form.is_valid statement
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Итак, моя функция выглядит следующим образом
def create_comment(request):
context = {}
form = ReviewForm(request.POST or None)
if form.is_valid():
form.save()
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
else:
context['form'] = form
return render(request, "app/create_comment.html", context)
Странно, но в сообщении говорится, что он не работает в режиме инкогнито/приватном режиме, но только что проверил, и он работает. Но даже в некоторых статьях не рекомендуется использовать этот реферер, так что я все еще ищу лучшее решение для этого. Спасибо всем.