Python Django Forms - Django provides a Form class which is used to create HTML forms. It describes a form and how it works and appears.
Forms.py
from django import forms COUNTRY_CHOICES =( ("1", "Philippines"), ("2", "Japan"), ("3", "Korea"), ("4", "Singapore"), ("5", "USA"), ) CHOICES=[('male','Male'), ('female','Female')] class StudentForm(forms.Form): firstname = forms.CharField(label="Enter first name",max_length=50) lastname = forms.CharField(label="Enter last name", max_length = 100) country = forms.ChoiceField(choices = COUNTRY_CHOICES) date = forms.DateField() age = forms.DecimalField() email = forms.EmailField() photo = forms.FileField() gender = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect) accept = forms.BooleanField(label="Accept privacy and terms") def __str__(self): return self.firstnameViews.py
from django.shortcuts import render, redirect # Create your views here. from django import forms from myapp.forms import StudentForm def index(request): student = StudentForm() return render(request,"form.html",{'form':student})Forms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Django Forms</title> </head> <body> <p><h2>Django Forms</h2></p> <form method="POST" class="post-form"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="save btn btn-default">Save</button> </form> </body> </html>
urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index', views.index),
#path('', views.index),
]