我使用带有小部件的Django来获取一些用户输入,但即使您的代码看起来与在线示例几乎完全相同,我似乎无法显示它。
forms.py
from django import forms
class PickerIDForm(forms.Form):
pickeID = forms.NumberInput()
views.py
def get_id(request):
template = loader.get_template('metrics/lance1.html')
def get(self, request):
form = PickerIDForm()
return render(request, 'self.template', {'form': form})
context ={
}
return HttpResponse(template.render(context,request))
urls.py
from django.urls import path
from . import views
from . import mark_views
app_name = 'metrics'
urlpatterns = [
path('', views.index, name='index'),
path('test/', views.get_id, name='get_id'),
]
的test.html
{% extends 'base.html' %}
{% block content %}
<p>User Input</p>
<form method = "post" >
{% csrf_token %}
{{form.as_p}}
<button type="submit"> Submit </button>
</form>
{% endblock %}
我永远不会直接调用views.py中定义的get函数,这对我来说似乎是加载test.html时未显示的输入字段的可能来源
您在什么时候将不同的部分链接在一起?因为我似乎错过了一些东西。
答案 0 :(得分:3)
您已在窗体中定义窗口小部件而不是字段。
要解决此问题,请将pickeID = forms.NumberInput()
替换为pickeID = forms.IntegerField()
并写下你的观点:
def get_id(request):
form = PickerIDForm()
return render(request, 'metrics/lance1.html', {'form': form})