当前位置:   article > 正文

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

django forms.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}
		
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2.ModelForm组件
views.py

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

以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})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

user_model_form_add.html

<body>
    <form method="post">
        {% csrf_token %}
        {
  {form.name}}    <!--无需input标签,即可生成效果-->
        {
  {form.pwd}}
        {
  {form.age}}
</body
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/924272
推荐阅读
相关标签
  

闽ICP备14008679号