Modelforms如何在Django中使用-創(chuàng)新互聯

這篇文章給大家介紹Modelforms如何在Django中使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、做網站、冀州網絡推廣、小程序定制開發(fā)、冀州網絡營銷、冀州企業(yè)策劃、冀州品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯為所有大學生創(chuàng)業(yè)者提供冀州建站搭建服務,24小時服務熱線:13518219792,官方網址:muchs.cn
from django.forms import ModelForm
 
 class Test(ModelForm):
   # 把那張表轉化成form組件
   class Meta:
 
     # 這個意思即是把Article轉化成form組件
     model = models.Article
 
     # 把表中的所有的字段都做轉化,這里也可以傳遞一個list,可以指定顯示某些字段
     fields = "__all__"
 
 # modelform組件的使用方法和forms組件的用法一樣,但是i如果要保存出數據的時候,可以直接調用save方法保存就可以了,無論是單表,一對多,還是多對多
 
 
     # 如果增加數據
     # form = Test(request.POST)
     # if form.isvalid():
     #   form.save()
     # 這樣就可以直接保存
 
 
 
 
     # 如果編輯數據,用下面的方法就可以把當前的對象的值渲染到form表單中,無論是單表,一對多,還是多對多
     # obj = models.Article.objects.all().first()
     # form = Test(instance=obj)
     # 上面是實現渲染數據到form表單
 
 
 
     # form = Test(request.POST,instance=obj)
     # if form.isvalid():
     #   form.save()
 
     # 這個就是實現更新操作,和增加操作唯一的區(qū)別就是通過instance傳遞一個要編輯的對象進去就可以了

Modelforms如何在Django中使用

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

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

首先下面這個函數是用來展示書籍信息

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
}

下面這個函數是用來處理處理添加書籍的操作

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())

下面這個函數是用來處理編輯書籍的

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/")

關于Modelforms如何在Django中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:Modelforms如何在Django中使用-創(chuàng)新互聯
網站網址:http://muchs.cn/article40/dejeho.html

成都網站建設公司_創(chuàng)新互聯,為您提供靜態(tài)網站、網站策劃、面包屑導航關鍵詞優(yōu)化、域名注冊、云服務器

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站建設