初步认识 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), ]

浙公网安备 33010602011771号