本篇文章主要介绍了"django Django之Modelform组件",主要涉及到django方面的内容,对于Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
Modelform组件Modelform就是model和from两者结合起来的。它既有验证,又有数据库的操作Modelform组件: Modelform:...


from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^role/$', views.role),
url(r'^role/add/$', views.role_add),
url(r'^role/edit/(\d+)/$', views.role_edit),
url(r'^usertype/$', views.user_type),
url(r'^usertype/add/$', views.user_type_add),
url(r'^usertype/edit/(\d+)/$', views.user_type_edit),
#url(r'^role.html$', admin.site.urls),
]
urlviews:


from django.shortcuts import render,redirect,HttpResponse
from app01 import models
from django.forms import Form,ModelForm
from django.forms import fields
from django.forms import widgets as wd
def role(request):
roles = models.Role.objects.all()
return render(request,'role.html',{'roles':roles})
class Role(ModelForm):
class Meta:
model = models.Role
fields = "__all__"def role_add(request):
if request.method == "GET":
form = Role()
return render(request,'role_add.html',{'form':form})
else:
form = Role(request.POST)
if form.is_valid():
form.save()
# models.Role.objects.create(**form.cleaned_data)# models.Role.objects.create(**{'catpion':'123'})return redirect('/role/')
else:
return render(request, 'role_add.html', {'form': form})
def role_edit(request,nid):
obj = models.Role.objects.filter(id=nid).first()
ifnot obj:
return HttpResponse('数据不存在')
if request.method == "GET":
form = Role(instance=obj)
return render(request,'role_edit.html',{'form':form})
else:
form = Role(data=request.POST,instance=obj)
if form.is_valid():
form.save()
return redirect('/role/')
else:
return render(request, 'role_edit.html', {'form': form})
def user_type(request):
user_type_list = models.UserType.objects.all()
return render(request,'user_type.html',{'user_type_list':user_type_list})
class UserTypeModeForm(ModelForm):
title = fields.CharField(max_length=6,required=True,widget=wd.Textarea())
class Meta:
model = models.UserType
fields = "__all__" error_messages = {
'title':{'required':'名称不能为空','invalid':'格式错误'}
}
widgets = {
'title':wd.TextInput(attrs={'class':'c1'})
}
# 钩子函数def user_type_add(request):
if request.method == "GET":
form = UserTypeModeForm()
return render(request,'user_type_add.html',{'form':form})
else:
form = UserTypeModeForm(request.POST)
if form.is_valid():
form.save()
return redirect('/usertype/')
else:
return render(request, 'user_type_add.html', {'form': form})
def user_type_edit(request,nid):
obj = models.UserType.objects.filter(id=nid).first()
ifnot obj:
return HttpResponse('...')
if request.method == 'GET':
# 显示默认值
form = UserTypeModeForm(instance=obj)
return render(request,'user_type_edit.html',{'form':form})
else:
form = UserTypeModeForm(instance=obj,data=request.POST)
if form.is_valid():
form.save()
return redirect('/usertype/')
else:
return render(request, 'user_type_edit.html', {'form': form})
Viewsrole.html: