1、实质
model 和form组件相结合
2、定义
from django.forms import ModelForm
class BookForm(ModelForm): class Meta: model = Book fields = '__all__' labels = { 'name': "书名:", 'price': "价格:", 'data': "日期:", 'publisher': "出版社", 'authors': "作者", } widgets = { 'data': wid.TextInput(attrs={"type": "date"}) }
3、添加数据
def add_book(request): if request.method == "POST": book = BookForm(request.POST) if book.is_valid():
# 将添加的数据保存到数据库中 book.save() return redirect("/books/")
else:
return HttpResponse(book.errors)
# 获取model的表 book = BookForm() return render(request, "add_book.html", {'book': book})
4、修改数据
def edit_book(request, edit_id): book_obj = Book.objects.filter(nid=edit_id).first() if request.method == "POST": # 修改数据 book = BookForm(request.POST, instance=book_obj) if book.is_valid(): book.save() return redirect("/books/") # 获取表 和 改对应对应的 数据 book = BookForm(instance=book_obj) return render(request, "edit_book.html", {"book": book})
5、模板
<form action="" method="post" novalidate> {% csrf_token %} {% for filed in book %} <p> {{ filed.label }} {{ filed }} </p> {% endfor %} <input type="submit" name="" id="" value="提交"> </form>
注意:form组件和Model无关