自我学习:Django -Form与Modelform操作(新增+编辑数据)+验证(正则表达式等)

来源于视频p62-p71

原始版本缺点

  1. 无输入数据校验
  2. 无错误提示
  3. html页面上,每个字段都需要自己写
  4. 关联数据,需手动获取并循环

初识(不能复现)

1.form组件

views.py

class MyForm(Form): #继承Django中的Form类
	name = forms.CharField(widget=forms.Input)  #widget=forms.Input引入组件
	pwd = forms.CharField(widget=forms.Input)

def user_add(request):
	if request.method == "GET":
		form = MyForm() #引入form类
		return render(request, 'user_add.html', {
   "form": form}
		

user_add.html

<!--方法1-->
<form method="post">
	{
  { form.name }}
	{
  { form.pwd }}
	<!--<input type="text" name="name" >-->
	<input type="submit" value="提 交">
</form>

<!--方法2:循环显示-->
<form method="post">
	{% for field in form %}
		{
  { field}}
	{% endfor %}
	<!--<input type="text" name="name" >-->
	<input type="submit" value="提 交">
</form>

2.ModelForm组件
views.py

class MyForm(ModelForm):  #继承ModelForm类
	xx = form.Charfield
	class Meta:
		model = UserInfo  #在models.py中定义的表类
		fields = ["name", "pwd", "age", xx]  #需要显示的字段(来源于表头),和自定义字段xx

以ModelForm为例,新增用户

阶段1

views.py

from django import forms   #引入

class UserModelForm(forms.ModelForm):
    class Meta:
        model = models.UserInfo
        fields = ["name", "pwd", "age"]    #UserInfo表中一部分字段
        #exclude = ['level']    #配合"__all__"使用
        #fields = "__all__"  #取到所有字段

def user_model_form_add(request):
    """新增人员(ModelForm版本)"""
    form = UserModelForm()
    return render(request, 'user_model_form_add.html', {
   'form': form})

user_model_form_add.html

<body>
    <form method="post">
        {% csrf_token %}
        {
  {form.name}}    <!--无需input标签,即可生成效果-->
        {
  {form.pwd}}
        {
  {form.age}}
<
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值