Я создал форму из django и перенаправлял пользователя на другую страницу своего приложения (другой URL-адрес), как только пользователь заполнил форму. Форма находится в URL-адресе 'data / celia c' ('celia c. html'), и я хотел бы перенаправить его на URL-адрес 'data / cdr3'. После написания следующего кода, когда пользователь заполняет форму, он перенаправляется на тот же URL-адрес data / celia c. Что мне следует изменить в моем коде, чтобы меня перенаправили на URL-адрес data / cdr3? CeliacViews:
def CeliacView(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = forms.CeliacForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
columns = form.cleaned_data['columns']
algo = form.cleaned_data['algo']
context = {'form': forms.Cdr3Form()}
return render(request, 'data/cdr3.html', context)
else:
tableData = get_table_data_to_representation()
context = {'form': forms.CeliacForm(), 'tableData': tableData}
return render(request, 'data/celiac.html', context)
Cdr3Views:
def Cdr3View(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
my_form = forms.Cdr3Form(request.POST)
# check whether it's valid:
if my_form.is_valid():
# process the data in form.cleaned_data as required
kmers = my_form.cleaned_data['kmers']
threshold = my_form.cleaned_data['threshold']
learning_rate = my_form.cleaned_data['learning_rate']
epochs = my_form.cleaned_data['epochs']
split = my_form.cleaned_data['split']
# TODO: Call data and run machine learning model
x_dataset, y_dataset = get_dataset_celiac(int(kmers))
train_x, train_y, test_x, test_y = split_data(int(split), x_dataset, y_dataset)
parameters, v, m = initialization_of_parameters(int(kmers))
train_results = train(parameters, v, m, epochs, learning_rate, threshold, train_x, train_y)
data_for_report = test(test_x, test_y, threshold, train_results)
fig = presentation_of_results(data_for_report)
buf = io.BytesIO()
fig.savefig(buf, format='PNG', bbox_inches='tight')
buf.seek(0)
string = base64.b64encode(buf.read())
image = parse.quote(string)
return render(request, 'data/cdr3Results.html', {'data': image})
# if a GET (or any other method) we'll create a blank form
else:
context = {'form': forms.Cdr3Form()}
return render(request, 'data/cdr3.html', context)
И urls.py:
from django.urls import path
from . import views
app_name = 'data'
urlpatterns = [
path('datasets/', views.SetView, name='datasets'),
path('celiac/', views.CeliacView, name='celiac'),
path('cdr3/', views.Cdr3View, name='cdr3'),
path('cdr3results/', views.Cdr3Results, name='cdr3Results')
]
мой шаблон celia c. html:
<form method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Save">
</form>