【发布时间】:2019-01-28 12:22:21
【问题描述】:
我在将变量从模板传递到视图时遇到问题。尽管我能够将变量从视图传递到模板,但我似乎无法正确处理。我看过类似的问题here。
按照 Django 文档,我创建了一个 forms.py 脚本,如下所示:
forms.py
>GNU nano 2.7.4 文件:forms.py
from django import forms
class TactForm(forms.Form):
tacttime = forms.CharField(label='Tact Time', max_length=100)
更新视图
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
from lineoee.models import Lineoee31
from .forms import TactForm
def details(request):
if request.method == 'POST':
form = TactForm(request.POST)
print(form)
else:
form = TactForm()
context = {'form' : form}
return render(request, 'linedetails/index.html',context)
更新模板
<form method="POST" action="{% url 'details' %}">
{% csrf_token %}
{{ form.as_p }}
<label for="tacttime">Tact Time: </label>
<input id="tacttime" type="text" name="tacttime" value ="60">
<input type="submit" value="OK">
<form>
更新的网址
from django.conf.urls import url
from django.contrib import admin
from lineoee.views import index
from lineoee.views import details
urlpatterns = [
url(r'lineoee/$', index, name='index'),
url(r'linedetails/', details, name='details'),
]
仍然没有错误,也没有传递给视图的值。
编辑
我现在在按下 OK 按钮时获得了一些数据,但这不是我所期望的。我希望能够检索输入到input 字段中的文本。我该怎么做?
“POST /linedetails/HTTP/1.1”200 24580
<tr><th><label for="id_tacttime">Tact Time:</label></th><td><input type="text" name="tacttime" value="60" required id="id_tacttime" maxlength="100" /></td></tr>
【问题讨论】:
-
您遇到任何错误?您很可能会收到 csrf 验证错误。
-
没有任何错误。页面会相应地呈现,但在按下提交时不会向控制台打印任何内容。
-
发帖后可以通过控制台日志吗?
-
您能分享指向该视图的 URL 吗?
-
您发布到错误的 URL。
<form method="POST" action="/details">应该是<form method="POST" action="/linedetails">
标签: html django forms python-2.7 post