Ich habe ein Problem über Django URL-Umleitung. Die Struktur des Codes ist folgende:Umleitung funktioniert nicht django
- Die Reaktoransicht zeigt eine HTML-Seite mit einer Liste von Elementen. Wenn Sie auf einen von ihnen klicken, wird eine Ajax-Anfrage an die Ansicht gestellt.
- Die Ajax-Anforderung ruft eine andere Ansicht mit den notwendigen Informationen auf
- Der measurementReactor wird aufgerufen und zeigt Details über einen Reaktor an.
Alle Funktionen werden korrekt aufgerufen wird die GET-Anforderung gemacht, aber die Seite umleiten nicht in Browser ...
urls.py
urlpatterns = [
url(r'^reactors/$', views.reactors, name = 'reactors'),
url(r'^measurements/reactor/$', views.measurementReactor, name='measureReact'),
]
Ansichten. py
@login_required
def reactor(request):
if request.method == "POST" and request.is_ajax():
if request.POST.get('type') == "measurement" :
return redirect('/measurements/reactor/?ref='+request.POST.get('id'))
@login_required
def measurementReactor(request):
reactobj = reactor.objects.get(id=request.GET['ref'])
query = measurements.objects.filter(id_reactor=reactobj.id)
return render(request, "measureReact.html",{"query":query})
reaktor.js
var table1 = $('#datatable').DataTable();
$('#datatable tbody').on('click', 'tr>th:not(.controls.mdl-data-table__cell--non-numeric)', function() {
var data = $(this).parent().find("[name=pk]").text();
$.ajax({
type : "POST",
data : {'csrfmiddlewaretoken' : csrftoken, 'id':data, 'type':"measurement"},
});
});
[EDIT] Vielen Dank für Ihre Antworten, ich tat dies und es funktioniert!
#views.py
import json
@login_required
def reactors(request):
if request.POST.get('type') == "measurement" :
data = json.dumps({'url':'/measurements/reactor/?ref='+request.POST.get('id')})
return HttpResponse(data)
#reactor.js
$.ajax({
type : "POST",
data : {'csrfmiddlewaretoken' : csrftoken, 'id':data, 'type':"measurement"},
dataType: 'json',
success: function(data){
window.location.href = data["url"];
}
});