lancegerday
lancegerday

Reputation: 762

Django Widget not Loading

I using Django with widgets to get some user input but I can't seem to get it to display even thou the code seems almost identical to examples online.

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

I'm never directly calling the get function as defined in views.py that to me seems to be a possible source of the input fields not showing up when I load up test.html

At what point do you link the disparate parts together? Because it seems I'm missing something.

Upvotes: 0

Views: 849

Answers (1)

Ivan
Ivan

Reputation: 2675

You have defined the widget instead of the field in your form.

To fix that replace pickeID = forms.NumberInput() with pickeID = forms.IntegerField()

And also write your view like this:

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

Upvotes: 3

Related Questions