標籤:idg ror 利用 rtc length attrs djang pre text
Model Form :直接利用你的models裡的欄位 應用情境: - ModelForm - 中小型應用程式(model是你自己寫的) - Form - 大型應用程式 注意事項: - 1. 類 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 class Foo(ModelForm): title = fields.CharField(max_length=6,required=True,widget=wd.Textarea()) #可以自訂欄位,如果該欄位與下面的表內的欄位不衝突,那就會增加一個,如果衝突就會覆蓋下方類中的欄位 class Meta: # model = models.Role #Role表內的所有欄位就直接拿過來了 # fields = "__all__" #指定欄位 # fields = [‘caption‘,] #指定欄位 # exclude = [‘catpion‘] #指定欄位 model = models.UserType fields = "__all__" error_messages = { ‘title‘:{‘required‘:‘名稱不可為空‘,‘invalid‘:‘格式錯誤‘} } widgets = { ‘title‘:wd.TextInput(attrs={‘class‘:‘c1‘}) } # 鉤子函數 - 2. 添加 GET: form = Foo() POST: form = Foo(data=request.POST) form.is_valid() form.cleaned_data form.save() #直接把乾淨的資料幫你建立了記錄,無論是單表還是多表 form.erros - 3. 修改 GET: form = Foo(instance=obj) POST: form = Foo(instance=obj,data=request.POST) #如果不寫instance=obj資料庫會多增加一條記錄不會修改,給它一個對象表示向對象修改資料 ... form.save()
python-day97--django-ModelForm