ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

django Django之Modelform组件(2/4)

来源:网络整理     时间:2017-12-06     关键词:django

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

 Django之Modelform组件 Django之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),
]
url

views:

 Django之Modelform组件 Django之Modelform组件

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})
Views

role.html:

django相关图片

django相关文章