最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年07月27日 09:46:48   作者:bainianminguo  
這篇文章主要介紹了Django的Modelforms用法簡(jiǎn)介,文中通過示例代碼介紹的非常詳細(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方法保存就可以了,無論是單表,一對(duì)多,還是多對(duì)多
 
 
     # 如果增加數(shù)據(jù)
     # form = Test(request.POST)
     # if form.isvalid():
     #   form.save()
     # 這樣就可以直接保存
 
 
 
 
     # 如果編輯數(shù)據(jù),用下面的方法就可以把當(dāng)前的對(duì)象的值渲染到form表單中,無論是單表,一對(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ū)別就是通過instance傳遞一個(gè)要編輯的對(duì)象進(jìn)去就可以了

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

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

首先下面這個(gè)函數(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è)類就是modelform的類

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

下面這個(gè)函數(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ù)是用來處理編輯書籍的

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)文章

  • 使用tensorflow實(shí)現(xiàn)AlexNet

    使用tensorflow實(shí)現(xiàn)AlexNet

    這篇文章主要為大家詳細(xì)介紹了使用tensorflow實(shí)現(xiàn)AlexNet,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 解決python 出現(xiàn)unknown encoding: idna 的問題

    解決python 出現(xiàn)unknown encoding: idna 的問題

    這篇文章主要介紹了解決python出現(xiàn) unknown encoding: idna 的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python實(shí)現(xiàn)微信消息防撤回功能的實(shí)例代碼

    Python實(shí)現(xiàn)微信消息防撤回功能的實(shí)例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)微信消息防撤回 ,需要的朋友可以參考下
    2019-04-04
  • 使用Python構(gòu)建Markdown轉(zhuǎn)Word文檔轉(zhuǎn)換器

    使用Python構(gòu)建Markdown轉(zhuǎn)Word文檔轉(zhuǎn)換器

    在當(dāng)今的文檔處理中,Markdown因其簡(jiǎn)潔的語(yǔ)法和易讀性而廣受歡迎,而Microsoft Word(DOCX格式)則因其廣泛的兼容性和專業(yè)的排版效果成為商業(yè)文檔的標(biāo)準(zhǔn),本文將介紹如何使用Python構(gòu)建一個(gè)帶有圖形界面的Markdown轉(zhuǎn)Word文檔轉(zhuǎn)換器,需要的朋友可以參考下
    2025-02-02
  • 詳解Python中的Cookie模塊使用

    詳解Python中的Cookie模塊使用

    這篇文章主要介紹了詳解Python中的Cookie模塊使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-07-07
  • python自動(dòng)腳本的pyautogui入門學(xué)習(xí)

    python自動(dòng)腳本的pyautogui入門學(xué)習(xí)

    這篇文章主要介紹了python自動(dòng)腳本的pyautogui入門學(xué)習(xí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Django 通過JS實(shí)現(xiàn)ajax過程詳解

    Django 通過JS實(shí)現(xiàn)ajax過程詳解

    這篇文章主要介紹了Django 通過JS實(shí)現(xiàn)ajax過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出

    Python實(shí)現(xiàn)執(zhí)行Shell命令并獲取輸出

    這篇文章主要介紹了如何借助?os.system()?從?Python?腳本執(zhí)行?cmd?命令,以及如何借助?Python?中的?subprocess?模塊以更簡(jiǎn)單的方式從腳本執(zhí)行?cmd?命令,感興趣的小伙伴可以了解下
    2023-10-10
  • PyautoGui常用教程(一篇掌握)

    PyautoGui常用教程(一篇掌握)

    這篇文章主要介紹了PyautoGui常用教程(一篇掌握),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解scrapy內(nèi)置中間件的順序

    詳解scrapy內(nèi)置中間件的順序

    這篇文章主要介紹了詳解scrapy內(nèi)置中間件的順序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論

定日县| 凭祥市| 南京市| 通河县| 琼结县| 聂拉木县| 自治县| 灯塔市| 凌海市| 洛宁县| 阿拉善左旗| 沅江市| 宁蒗| 龙游县| 武乡县| 龙游县| 广东省| 安龙县| 偏关县| 沙洋县| 南昌市| 靖西县| 黔南| 贞丰县| 盐山县| 马山县| 宣武区| 柳河县| 武城县| 长寿区| 仙桃市| 绥阳县| 瓮安县| 渝北区| 新化县| 庆云县| 四子王旗| 新巴尔虎左旗| 汉源县| 花莲市| 小金县|