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

django 多對多表的創(chuàng)建和插入代碼實現(xiàn)

 更新時間:2019年09月09日 10:16:23   作者:信奉上帝的小和尚  
這篇文章主要介紹了django-多對多表的創(chuàng)建和插入代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了django-多對多表的創(chuàng)建和插入代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

表的創(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ù)新名稱,更新當前名稱
    author_info.name = name
    # 保存數(shù)據(jù)
    author_info.save()
    # set方法會將當前作者原先的書籍全部刪除,然后插入前端傳遞過來的書籍列表(參數(shù)為list類型)
    author_info.author2books.set(book_lst)
    # add方法會將前端傳遞過來書籍添加到 作者和書籍的對應(yīng)表中。如果插入重復(fù)記錄會報錯(參數(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})

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

相關(guān)文章

  • python實現(xiàn)RabbitMQ的消息隊列的示例代碼

    python實現(xiàn)RabbitMQ的消息隊列的示例代碼

    這篇文章主要介紹了python實現(xiàn)RabbitMQ的消息隊列的示例代碼,總結(jié)了RabbitMQ中三種exchange模式的實現(xiàn),分別是fanout, direct和topic。感興趣的小伙伴們可以參考一下
    2018-11-11
  • 詳解python實現(xiàn)交叉驗證法與留出法

    詳解python實現(xiàn)交叉驗證法與留出法

    這篇文章主要介紹了詳解python實現(xiàn)交叉驗證法與留出法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python?OpenCV圖像金字塔

    python?OpenCV圖像金字塔

    這篇文章主要介紹了python?OpenCV圖像金字塔,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • python 限制函數(shù)調(diào)用次數(shù)的實例講解

    python 限制函數(shù)調(diào)用次數(shù)的實例講解

    下面小編就為大家分享一篇python 限制函數(shù)調(diào)用次數(shù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python2升級/安裝pip報錯問題及解決

    Python2升級/安裝pip報錯問題及解決

    這篇文章主要介紹了Python2升級/安裝pip報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 幾個提升Python運行效率的方法之間的對比

    幾個提升Python運行效率的方法之間的對比

    這篇文章主要介紹了幾個提升Python運行效率的方法之間的對比,包括使用Cython和PyPy等這些熱門方法,需要的朋友可以參考下
    2015-04-04
  • Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型

    Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型

    這篇文章主要為大家詳細介紹了Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python 3.6.2 安裝配置方法圖文教程

    python 3.6.2 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了python 3.6.2 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python 讀寫中文json的實例詳解

    python 讀寫中文json的實例詳解

    這篇文章主要介紹了 python 讀寫中文json的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這樣的內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 創(chuàng)建pycharm的自定義python模板方法

    創(chuàng)建pycharm的自定義python模板方法

    今天小編就為大家分享一篇創(chuàng)建pycharm的自定義python模板方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論