问题
This is my view:
CHOICES = (('10','10'), ('20','20'),('30','30'), ('50','50'))
class Droplist (forms.Form):
number = forms.ChoiceField(choices = CHOICES)
def page_objects(request):
if request.method == 'POST': # If the form has been submitted...
form = Droplist(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
pass #pages = form.cleaned_data['value']
#return AutoPaginateNode(paginate_by=pages) # Redirect after POST
else:
form = Droplist() # An unbound form
return render_to_response('pagination.html', {'form': form })
This is my template:
<form action="/submit/" method="post">{% csrf_token %}
{{ form }}
<input type="submit" value="Select">
</form>
how can i render my form, because i need to have a dropdown box with choices on template? what i've missed?
回答1:
You need to use {{ form.as_p }}
:
<form action="/submit/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Select">
</form>
You can also use {{ form.as_table }}
to output table rows but you'll need to provide your own <table>
and form.as_ul
to output list items:
<form action="/submit/" method="post">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Select">
</form>
You can find more information on Displaying a form using a template on Django's documentation
来源:https://stackoverflow.com/questions/11639238/how-to-display-choicefield-select-widget-on-template