初步认识 form组件

 

 


modelform

 

 

 

 

 

 

 


 

代码案例 :

html 文件 

 {% for ziduan in form %}
      <div class="form-group">
         <label for="exampleInputEmail1"> {{ ziduan.label }}</label>
         {{ ziduan }}
      </div>
{% endfor %}

views.py 文件 : form代码  添加代码 插件自动添加样式 

     widgets = {
            'name': forms.TextInput(attrs={'class' : 'form-control'}),
            'pwd': forms.PasswordInput(attrs={'class': 'form-control'}),
            'age': forms.TextInput(attrs={'class': 'form-control'}),
            'account': forms.TextInput(attrs={'class': 'form-control'}),
        }

from django import forms

class
UserModelForm(forms.ModelForm): class Meta: model = models.UserInfo fields = ['name', 'pwd', 'age', 'account', 'creat_time', 'men', 'gener'] widgets = { 'name': forms.TextInput(attrs={'class' : 'form-control'}), 'pwd': forms.PasswordInput(attrs={'class': 'form-control'}), 'age': forms.TextInput(attrs={'class': 'form-control'}), 'account': forms.TextInput(attrs={'class': 'form-control'}), } def user_model_add(request): form = UserModelForm() return render(request, 'user_model_add.html', {'form': form})

 

 

效果 :

 

 


 

 mofelform 代码 

循环 插入样式  : 对input 输入框 插入样式 代码

 

class UserModelForm(forms.ModelForm):
    class Meta:
        model = models.UserInfo
        fields = ['name', 'pwd', 'age', 'account', 'creat_time', 'men', 'gener']
  # 循环开始 
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        for name, field in self.fields.items():
            field.widget.attrs = {"class": "form-control", "placeholder":field.label}

 

效果 : 

 

某一个字段不加  if 来判断   name 的字段 忽略 不加样式 

 

 for name, field in self.fields.items():
            if name == 'name':
                continue
            field.widget.attrs = {"class": "form-control", "placeholder":field.label}

 

 


 

 mofelform 代码  全部代码  views.py  循环

 

def user_list(request):
    return render(request, 'user_list.html')

class UserModelForm(forms.ModelForm):
    class Meta:
        model = models.UserInfo
        fields = ['name', 'pwd', 'age', 'account', 'creat_time', 'men', 'gener']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        for name, field in self.fields.items():
            # if name == 'name':
            #     continue
            field.widget.attrs = {"class": "form-control", "placeholder":field.label}


def user_model_add(request):
    form = UserModelForm()
    return render(request, 'user_model_add.html', {'form': form})

 

 mofelform 代码  全部代码  model.py  添加 部门表 

 

'''部门表'''
class BuMen(models.Model):
    title = models.CharField(verbose_name='部门名称', max_length=32)
    def __str__(self):
        return self.title

 

 mofelform 代码  全部代码 html 文件代码 :

 

{% extends 'layout.html' %}

{% block content %}

        <div class="panel panel-default">
            <div class="panel-heading">  <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span> 新建部门</div>
        </div>

        <form method="post">
            {% csrf_token %}

            {% for field in form %}
                <div class="form-group">
                    <label for="exampleInputEmail1"> {{ field.label }}</label>
                     {{ field }}
              </div>
            {% endfor %}

              <button type="submit" class="btn btn-primary">提交</button>
        </form>
{% endblock%}

 

 mofelform 代码  全部代码 urls.py 文件

 

from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('bumen/add/', views.bumen_add),
    path('bumen/edit/', views.bumen_edit),
    path('bumen/list/', views.bumen_list),
    path('bumen/delete/', views.bumen_delete),

    path('user/list/', views.user_list),

    # 定义一个modelform
    path('user/model/add/', views.user_model_add),

]

 

posted @ 2022-04-02 20:15  我在春天等伱  阅读(48)  评论(0)    收藏  举报