3 回答

TA貢獻1963條經驗 獲得超6個贊
我發現對我有用:
views.py :
def input(request):
return render(request, 'input.html', {})
def multiply(request):
if request.method == 'POST':
data = request.POST.get("decimalfield")
twice = int(data) * 2
return render(request, 'multiply.html', {'twice':twice})
urls.py :
path('input', views.input, name='input'),
path('multiply', views.multiply, name='multiply'),
輸入.html
<form method="POST" action="{% url 'multiply' %}">
{% csrf_token %}
<input type="text" name="decimalfield">
<button type="submit">Upload text</button>
</form>
乘法.html
<label>{{ twice }}</label>

TA貢獻1817條經驗 獲得超6個贊
參數應該是字典。views.py:
def multiply(request):
if request.method == 'POST':
data = request.POST.get("decimalfield")
twice = data * 2
return render(request, 'multiply.html', {'twice':twice})
return render(request, 'input.html')
為什么你有兩個指向一個視圖的網址?第二個是什么?刪除它
path('input', views.multiply, name='input'),
# path('multiply', views.multiply, name='multiply'),
創建乘法.html并渲染兩次:
<p>{{ twice }}</p>

TA貢獻1802條經驗 獲得超4個贊
好的,因為當你通過url(name = 'input')進入頁面時,第一個方法是請求的,所以他們不會重新運行渲染,因為它在方法POST中,你現在可以編輯:
def multiply(request):
if request.method == 'POST':
data = request.POST.get("decimalfield")
twice = {'data':data*2 }
return render(request, 'multiply.html', twice)
return render(request, 'multiply.html')
添加回答
舉報