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

Django的Modelforms用法簡介

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

簡單的用了一下model_forms,覺得還是不是很好用

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

首先下面這個函數(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

下面這個類就是modelform的類

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

下面這個函數(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("出錯了")
      model_form_obj = test(request.POST)
 
      return render(request, "modelfrom_add.html", locals())

下面這個函數(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/")

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

    使用tensorflow實現(xiàn)AlexNet

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

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

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

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

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

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

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

    詳解Python中的Cookie模塊使用

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

    python自動腳本的pyautogui入門學習

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

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

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

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

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

    PyautoGui常用教程(一篇掌握)

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

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

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

最新評論

当雄县| 贺州市| 黑龙江省| 吐鲁番市| 襄汾县| 蓝田县| 海丰县| 大同市| 玉龙| 郴州市| 舒兰市| 博乐市| 南雄市| 阳曲县| 铁力市| 浦江县| 新邵县| 白朗县| 翼城县| 东丽区| 大宁县| 陵水| 南城县| 高安市| 西峡县| 屏南县| 青阳县| 布尔津县| 随州市| 安泽县| 乌恰县| 鄂托克旗| 疏勒县| 莱阳市| 洪泽县| 石嘴山市| 华宁县| 嘉鱼县| 阳高县| 仙桃市| 乐山市|