Django Forms实例
生活随笔
收集整理的這篇文章主要介紹了
Django Forms实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# Django的Form主要具有一下幾大功能:
#
# 生成HTML標簽
# 驗證用戶數據(顯示錯誤信息)
# HTML Form提交保留上次提交數據
# 初始化頁面顯示內容# forms組件生成HTML標簽格式
# class 表名Form(Form):
# 字段名 = fields.字段類型(
# 初始值,
# widgets=widgets.插件(attrs={html屬性標簽 字典格式})
# )
widget=widgets.TextInput(attrs={"style":"color:red;"},)
)age = fields.IntegerField()gender = fields.ChoiceField(choices=((1, "男"), (0, "女"),),initial=1,widget=widgets.Select)classes = fields.IntegerField(initial=1,widget=widgets.Select())
# 綁定動態數據def __init__(self, *args, **kwargs):super(StudentForm, self).__init__(*args, **kwargs)self.fields["classes"].widget.choices = Class.objects.all().values_list("id", "title")
1.urls.py
url(r'^student', student),2.models.py
from django.db import models# Create your models here. class Class(models.Model):title = models.CharField(max_length=32)teachers = models.ManyToManyField("Teacher")def __str__(self):return self.titleclass Teacher(models.Model):name = models.CharField(max_length=32)def __str__(self):return self.nameclass Student(models.Model):username = models.CharField(max_length=16,unique=True)age = models.IntegerField()gender = models.BooleanField()classes = models.ForeignKey("Class")def __str__(self):return self.username2.form.py
from .models import Student, Class, Teacher # Create your froms here. from django.forms import Form from django.forms import widgets from django.forms import fieldsclass StudentForm(Form):username = fields.CharField()(widget=widgets.TextInput(attrs={"style":"color:red;"},)
)age = fields.IntegerField()gender = fields.ChoiceField(choices=((1, "男"), (0, "女"),),initial=1,widget=widgets.Select)classes = fields.IntegerField(initial=1,widget=widgets.Select())
# 綁定動態數據def __init__(self, *args, **kwargs):super(StudentForm, self).__init__(*args, **kwargs)self.fields["classes"].widget.choices = Class.objects.all().values_list("id", "title")
4.views.py
from .forms import StudentForm from .models import Student,Class,Teacher def student(request):if request.method == "GET":obj = StudentForm()return render(request, "t1/student.html", locals())elif request.method == "POST":obj = StudentForm(request.POST)if obj.is_valid():try:val = obj.clean()print(val)Student.objects.create(username=val["username"], age=val["age"], gender=val["gender"],classes_id=val["classes"])return HttpResponse(val["username"] + "添加完成")except Exception as e:return HttpResponse("數據錯誤,請重新輸入")else:print(obj.clean())return HttpResponse("ERROR")else:return HttpResponse("error")5.student.html
<!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <form action="/student/" method="POST" enctype="multipart/form-data">{% csrf_token %}<p>用戶名:{{ obj.username }} {{ obj.username.errors }}</p><p>年 齡:{{ obj.age }}{{ obj.age.errors }}</p><p>性 別:{{ obj.gender }}</p><p>班 級:{{ obj.classes }}</p><input type="submit"value="添加用戶"/> </form> </body> </html>?
轉載于:https://www.cnblogs.com/icemonkey/p/10541986.html
總結
以上是生活随笔為你收集整理的Django Forms实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Canvas动画基础之碰撞检测
- 下一篇: [Swift]LeetCode781.