真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用django怎么創(chuàng)建一個多對多表-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)使用django怎么創(chuàng)建一個多對多表,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、玉田網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

表的創(chuàng)建

# 作者和書籍之間的多對多關(guān)系  
class Author(models.Model):
  '''
  作者表
  '''
  nid = models.AutoField(primary_key=True)
  name = models.CharField(verbose_name='作者名稱',max_length=32)
  # 第一種方式直接在作者表中創(chuàng)建ManyToManyField字段(ORM會自動幫我們創(chuàng)建第三張表推薦這種方式)
  author2books = models.ManyToManyField(to='Books')
class Books(models.Model):
  '''
  書籍名稱
  '''
  nid = models.AutoField(primary_key=True)
  title = models.CharField(verbose_name='書本名稱',max_length=32)
  pid = models.ForeignKey(verbose_name='出版社ID',to='Press',to_field='nid',on_delete=models.CASCADE)
# 第二鐘方式手動創(chuàng)建第三張表
# class Books2Author(models.Model):
#   '''
#   書本作者對應(yīng)表
#   '''
#   nid = models.AutoField(primary_key=True)
#   aid = models.ForeignKey(verbose_name='作者ID',to='Author',to_field='nid')
#   bid = models.ForeignKey(verbose_name='書籍ID',to='Books',to_field='nid')

數(shù)據(jù)的添加

# 編輯作者
def edit_author(request):
  # 獲取作者ID 
  id = request.GET.get('id')
  # 獲取所有書籍
  books_lst = models.Books.objects.all()
  # 根據(jù)作者ID 獲取到作者對象
  author_info = models.Author.objects.filter(pk=id).first()
  if request.method == 'POST':
    # 獲取前端傳過來的作者新名稱
    name = request.POST.get('name')
    # 獲取前端傳遞過來的書籍
    book_lst = request.POST.getlist('books')
    # 根據(jù)新名稱,更新當(dāng)前名稱
    author_info.name = name
    # 保存數(shù)據(jù)
    author_info.save()
    # set方法會將當(dāng)前作者原先的書籍全部刪除,然后插入前端傳遞過來的書籍列表(參數(shù)為list類型)
    author_info.author2books.set(book_lst)
    # add方法會將前端傳遞過來書籍添加到 作者和書籍的對應(yīng)表中。如果插入重復(fù)記錄會報(bào)錯(參數(shù)為單個元素,可以插入多個)
    # author_info.author2books.add(*book_lst)
    return redirect('/author_lst/')
  return render(request,'edit_author.html',{'books_lst':books_lst,'author_info':author_info})

上述就是小編為大家分享的使用django怎么創(chuàng)建一個多對多表了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

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


文章標(biāo)題:使用django怎么創(chuàng)建一個多對多表-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://weahome.cn/article/ddsdsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部