代码之家  ›  专栏  ›  技术社区  ›  lancegerday

Django小部件未加载

  •  0
  • lancegerday  · 技术社区  · 7 年前

    我使用Django和widget来获得一些用户输入,但我似乎无法让它显示出来,即使你的代码似乎与在线示例几乎相同。

    表格。py公司

    from django import forms
    
    class PickerIDForm(forms.Form):
        pickeID = forms.NumberInput()
    

    视图。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))
    

    URL。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'),
    
    ]
    

    测验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 %}
    

    我从来没有直接调用视图中定义的get函数。在我看来,这可能是在加载测试时并没有显示输入字段的一个来源。html

    您在什么时候将不同的部分连接在一起?因为我好像错过了什么。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Ivan    7 年前

    您已经定义了小部件,而不是表单中的字段。

    修复该替换 pickeID = forms.NumberInput() 具有 pickeID = forms.IntegerField()

    也可以这样写下您的观点:

    def get_id(request):
        form = PickerIDForm()
        return render(request, 'metrics/lance1.html', {'form': form})