如何在Django中传递字段从提交的表单到url ?



我试图提交一个表单,保存到数据库,然后在一个新的url上显示cleaned_data。在表单中,我有一个名为job_number的字段。我想把cleaned_data发送到127.0.0.1:8000/quotes/job_number

引用/views.py:

@login_required
def quote_view(request):
data_form = QuoteInformationForm()
if request.method == "POST":
data_form = QuoteInformationForm(request.POST)
if data_form.is_valid():
data_form.save(commit=True)
return redirect('quote')
else:
print('Error')
return render(request, "index.html", {'data_form': data_form})
@login_required
def submitted_quote(request):
return render(request, "quote.html")

urls . py:

urlpatterns = [
path('home/', quote_view, name='home'),
path('quote/', submitted_quote, name='quote'),

当前所做的就是使用index.html在http://127.0.0.1:8000/home/上打开表单。当我提交它将发送信息到数据库,并重定向到http://127.0.0.1:8000/quotes。这很好。现在,我只需要在此url上显示清理后的数据,并更改url以在末尾包含job_number。我该怎么做呢?

你需要像这样改变url模式:

urlpatterns = [
path('home/', quote_view, name='home'),
path('quote/<int:job_number>/', submitted_quote, name='quote'),
]

和submitted_quotes ():

@login_required
def submitted_quote(request,job_number):
job = # Get Your job
return render(request, "quote.html", {"job":job})

:

@login_required
def quote_view(request):
data_form = QuoteInformationForm()
if request.method == "POST":
data_form = QuoteInformationForm(request.POST)
if data_form.is_valid():
data_form.save(commit=True)
return redirect('quote{}'.format(data_form.id))
else:
print('Error')
return render(request, "index.html", {'data_form': data_form})

最新更新