欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django的Modelforms用法簡(jiǎn)介

 更新時(shí)間:2019年07月27日 09:46:48   作者:bainianminguo  
這篇文章主要介紹了Django的Modelforms用法簡(jiǎn)介,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
from django.forms import ModelForm
 
 class Test(ModelForm):
   # 把那張表轉(zhuǎn)化成form組件
   class Meta:
 
     # 這個(gè)意思即是把Article轉(zhuǎn)化成form組件
     model = models.Article
 
     # 把表中的所有的字段都做轉(zhuǎn)化,這里也可以傳遞一個(gè)list,可以指定顯示某些字段
     fields = "__all__"
 
 # modelform組件的使用方法和forms組件的用法一樣,但是i如果要保存出數(shù)據(jù)的時(shí)候,可以直接調(diào)用save方法保存就可以了,無(wú)論是單表,一對(duì)多,還是多對(duì)多
 
 
     # 如果增加數(shù)據(jù)
     # form = Test(request.POST)
     # if form.isvalid():
     #   form.save()
     # 這樣就可以直接保存
 
 
 
 
     # 如果編輯數(shù)據(jù),用下面的方法就可以把當(dāng)前的對(duì)象的值渲染到form表單中,無(wú)論是單表,一對(duì)多,還是多對(duì)多
     # obj = models.Article.objects.all().first()
     # form = Test(instance=obj)
     # 上面是實(shí)現(xiàn)渲染數(shù)據(jù)到form表單
 
 
 
     # form = Test(request.POST,instance=obj)
     # if form.isvalid():
     #   form.save()
 
     # 這個(gè)就是實(shí)現(xiàn)更新操作,和增加操作唯一的區(qū)別就是通過(guò)instance傳遞一個(gè)要編輯的對(duì)象進(jìn)去就可以了

簡(jiǎn)單的用了一下model_forms,覺(jué)得還是不是很好用

我是用書(shū)、出版社,作者三張表來(lái)做這個(gè)聯(lián)系

首先下面這個(gè)函數(shù)是用來(lái)展示書(shū)籍信息

def test_models(request):
  method = request.method.lower()
  if method == "get":
    body_list = []
    obj = models.Book.objects.all()
 
    head_list = models.Book._meta.get_fields()
 
    for i in obj:
      temp = []
      temp.append(i.bid)
      temp.append(i.title)
      temp.append(i.publish)
      temp.append(i.auther.all())
      body_list.append(temp)
    return render(request,"modelform_html1.html",locals())
  else:
    pass

下面這個(gè)類(lèi)就是modelform的類(lèi)

class test(ModelForm):
class Meta:
model = models.Book
fields = "__all__"
labels = {"title":"書(shū)籍的名稱(chēng)","auther":"作者","publish":"出版社"}
error_messages = {
"title":{"required":"不允許為空",
"invalid":"格式錯(cuò)誤"
}
}
widgets = {
"title":wd.TextInput(attrs={"placeholder":"密碼"})
}
 
field_classes = {
"title":forms.EmailField
}

下面這個(gè)函數(shù)是用來(lái)處理處理添加書(shū)籍的操作

def add(request):
  method = request.method.lower()
  if method == "get":
    model_form_obj = test()
    for i in model_form_obj:
      print(i.label_tag(),"----------------------")
    return render(request,"modelfrom_add.html",locals())
 
  else:
    model_form_obj = test(request.POST)
    if model_form_obj.is_valid():
      model_form_obj.save()
 
      return redirect("/app2/test_models/")
    else:
      print("出錯(cuò)了")
      model_form_obj = test(request.POST)
 
      return render(request, "modelfrom_add.html", locals())

下面這個(gè)函數(shù)是用來(lái)處理編輯書(shū)籍的

def edit(request):
  method = request.method.lower()
  book_obj = models.Book.objects.get(bid=int(request.GET.get("id")))
 
  if method == "get":
    model_form_obj = test(instance=book_obj)
    return render(request,"modelfrom_add.html",locals())
  else:
    model_form_obj = test(request.POST,instance=book_obj)
    model_form_obj.save()
    return redirect("/app2/test_models/")

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mac在matplotlib中顯示中文的操作方法

    mac在matplotlib中顯示中文的操作方法

    這篇文章主要介紹了mac如何在matplotlib中顯示中文,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 構(gòu)建可視化?web的?Python?神器streamlit

    構(gòu)建可視化?web的?Python?神器streamlit

    這篇文章主要介紹了構(gòu)建可視化web的Python神器streamlit,Streamlit是一個(gè)用于機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化的Python框架,它能幾行代碼就構(gòu)建出一個(gè)精美的在線app應(yīng)用
    2022-06-06
  • 如何將Python列表轉(zhuǎn)換為字符串

    如何將Python列表轉(zhuǎn)換為字符串

    字符串是Python中最常用的數(shù)據(jù)類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于如何將Python列表轉(zhuǎn)換為字符串的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Python3 中sorted() 函數(shù)的用法

    Python3 中sorted() 函數(shù)的用法

    Sort函數(shù)是list列表中的函數(shù),而sorted可以對(duì)list或者iterator進(jìn)行排序。這篇文章主要介紹了Python3 中sorted() 函數(shù)的用法,需要的朋友可以參考下
    2020-03-03
  • Python模擬FTP文件服務(wù)器的操作方法

    Python模擬FTP文件服務(wù)器的操作方法

    這篇文章主要介紹了Python_模擬FTP文件服務(wù)器的操作方法,分為服務(wù)端和客戶(hù)端,要求可以有多個(gè)客戶(hù)端同時(shí)操作。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-02-02
  • Python中Django框架下的staticfiles使用簡(jiǎn)介

    Python中Django框架下的staticfiles使用簡(jiǎn)介

    這篇文章主要介紹了Python中Django框架下的staticfiles使用簡(jiǎn)介,staticfiles是一個(gè)幫助Django管理靜態(tài)資源的工具,需要的朋友可以參考下
    2015-05-05
  • 使用python將請(qǐng)求的requests headers參數(shù)格式化方法

    使用python將請(qǐng)求的requests headers參數(shù)格式化方法

    今天小編就為大家分享一篇使用python將請(qǐng)求的requests headers參數(shù)格式化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python數(shù)據(jù)清理技巧分享

    Python數(shù)據(jù)清理技巧分享

    數(shù)據(jù)常常被比作新時(shí)代的石油,就像石油需要經(jīng)過(guò)提煉才能制造出汽油一樣,數(shù)據(jù)也需要經(jīng)過(guò)整理才能發(fā)揮其作用,Python作為最廣泛使用的編程語(yǔ)言之一,提供了強(qiáng)大的數(shù)據(jù)整理工具,本文給大家介紹了Python數(shù)據(jù)清理的技巧,需要的朋友可以參考下
    2023-10-10
  • 超級(jí)詳細(xì)實(shí)用的pycharm常用快捷鍵

    超級(jí)詳細(xì)實(shí)用的pycharm常用快捷鍵

    本文詳細(xì)總結(jié)了Pycharm的常用快捷鍵,下文介紹使用方法和場(chǎng)景, 并不需要記憶這些快捷鍵, 你只需要知道有這些快捷鍵, 再需要用的時(shí)候查看一下, 用的多了自然也就記住了,需要的朋友可以參考下
    2021-05-05
  • Python Numpy教程之排序,搜索和計(jì)數(shù)詳解

    Python Numpy教程之排序,搜索和計(jì)數(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了Python?NumPy中排序,搜索和計(jì)數(shù)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-08-08

最新評(píng)論