url
python
path('userinfo2list/',views.userinfo2_list,name='userinfo2list'),
path('userinfo2_add2/', views.userinfo2_add2, name='userinfo2_add2'),
path('userinfo2_edit/', views.userinfo2_edit, name='userinfo2_edit'),
views
python
def userinfo2_list(request):
userinfo2=models.UserInfo2.objects.all()
return render(request,'userinfo2/list.html',{'userinfo2':userinfo2})
from django import forms
class User2ListForm(forms.ModelForm):
class Meta:
model = models.UserInfo2
fields = "__all__"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for name,field in self.fields.items():
field.widget.attrs = {'class': 'form-control'}
def userinfo2_add2(request):
if request.method=='GET':
form = User2ListForm()
return render(request,'userinfo2/add2.html',{'form':form})
form=User2ListForm(data=request.POST)
if form.is_valid():
form.save()
return redirect('/index/userinfo2list')
return render(request, 'userinfo2/add2.html', {'form': form})
def userinfo2_edit(request):
id = request.GET.get('id')
userinfo2 = models.UserInfo2.objects.get(id=id)
if request.method=='GET':
form = User2ListForm(instance=userinfo2)
return render(request,'userinfo2/add2.html',{'form':form})
form=User2ListForm(data=request.POST,instance=userinfo2)
if form.is_valid():
form.save()
return redirect('/index/userinfo2list')
return render(request, 'userinfo2/add2.html', {'form': form})
models
python
class UserInfo2(models.Model):
name=models.CharField(max_length=10,verbose_name='姓名')
age=models.SmallIntegerField(verbose_name='性别')
gender_choice=(
(1,'男'),
(2,'女')
)
gender=models.SmallIntegerField(verbose_name='性别',choices=gender_choice)
salary=models.DecimalField(verbose_name='收入',max_digits=10,decimal_places=2,default=0)
phone=models.CharField(verbose_name='电话号码',max_length=11,null=True,blank=True)
create_time=models.DateTimeField(verbose_name='入职时间')
list.html
html
{% extends 'layout/layout.html' %}
{% block content %}
<div class="container">
<a href="/index/userinfo2_add" class="btn btn-primary">添加用户信息</a>
<a href="/index/userinfo2_add2" class="btn btn-primary">ModelForm添加用户信息</a>
<table class="table table-striped">
<thead>
<tr>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>收入</td>
<td>电话</td>
<td>入职时间</td>
<td>操作</td>
</tr>
</thead>
<tbody>
{% for userinfo in userinfo2 %}
<tr>
<td>{{ userinfo.name }}</td>
<td>{{ userinfo.age }}</td>
<td>
{{ userinfo.get_gender_display }}
{% if userinfo.gender == 1 %}
男
{% else %}
女
{% endif %}
</td>
<td>{{ userinfo.salary }}</td>
<td>{{ userinfo.phone }}</td>
<td>{{ userinfo.create_time }}</td>
<td><a href="/index/userinfo2_edit/?id={{ userinfo.id }}">修改</a></a> </td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}
add2.html
html
{% extends 'layout/layout.html' %}
{% block content %}
<div class="container">
<form method="post" novalidate>
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label>{{ field.label }}</label>
{{ field }}
<span style="color: red">{{ field.errors }}</span>
</div>
{% endfor %}
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>