为什么一定要使用Form:
初识Form
1.views.py
原始
def info_add(request):
if request.method == "GET":
return render(request, "info_add.html")
# 获取用户提交的数据
user = request.POST.get("user")
pwd = request.POST.get("pwd")
age = request.POST.get("age")
#添加到数据库
UserInfo.objects.create(name=user, password=pwd, age=age)
# return HttpResponse("添加成功")
#自动跳转
return redirect("/info/list/")
改变 使用 Form
2.user_add.html
更简单,直接使用for循环
ModelForm(推荐使用)
models.py
class UserInfo(models.Model):
"""员工表"""
name = models.CharField(verbose_name="姓名", max_length=16)
password = models.CharField(verbose_name="密码", max_length=64)
age = models.IntegerField(verbose_name="年龄")
account = models.DecimalField("账户余额", max_digits=10, decimal_places=2, default=0) # 小数
create_time = models.DateTimeField(verbose_name="入职时间")
# 无约束
# depart_id = models.BigIntegerField(verbose_name="部门ID",)
# 有约束
# depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)
# 置空
depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
# 在Django中做的约束
gender_choices = (
(1, "男"),
(2, "女"),
)
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
views.py
直接使用models.py中的定义,不用像使用Form那样去重新引用。
更简洁