如今要實現一個form的添加和編輯,就是說對一個數據庫表的操做html
1. 聲明一個跟數據表關聯的 form實體數據庫
class LogForm(ModelForm):
class Meta:
model = app.models.ChangeLog
fields = '__all__'app
2. 定義好路由規則,參數名稱爲id函數
/logurl
/log/1orm
/log/12htm
url(r'^log(/(?P<id>\d{1,}))?$', app.views.log, name='log'),對象
3.實現視圖函數路由
def log(request,id=0):
assert isinstance(request, HttpRequest)
if request.method == 'POST':
form = app.forms.LogForm(request.POST)
if form.is_valid():
id = form.data['id']
if id:
model = app.models.ChangeLog.objects.get(id=id)
else:
model = app.models.ChangeLog()
model.serial_number = form.cleaned_data['serial_number']
model.name = form.cleaned_data['name']
model.type = form.cleaned_data['type']
model.remark = form.cleaned_data['remark']
model.save()
id = 0
else:
if id:
form = app.forms.LogForm(instance = app.models.ChangeLog.objects.get(id=id))
else:
form = app.forms.LogForm()
return render(request,'app/log.html',{
'title': '變動記錄',
'form': form, #得到表單對象
'data':app.models.ChangeLog.objects.all(),
'id': id
})rem
4. 注意模版 id值的存放
<input type="hidden" id="id" name="id" value="{{ id }}" />
備註:留意包的導入