欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Django之ORM表之間的外鍵關聯(lián)與多對多關系

實現環(huán)境表結構:

Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

站在用戶的角度思考問題,與客戶深入溝通,找到城東網站設計與城東網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站制作、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣、域名申請、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋城東地區(qū)。

models.py表單創(chuàng)建與代碼

from django.db import models

# Create your models here.

class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64,null=False,unique=True)

    def __str__(self):
        return "publisher_name:{}".format(self.name)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=128,null=False)
    publisher = models.ForeignKey(to=Publisher)           #外鍵關聯(lián)

    def __str__(self):
        return "book_title:{}".format(self.title)

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=16,null=False)
    book = models.ManyToManyField(to="Book")            #跟BOOK多對多關系

    def __str__(self):
        return "author_name:{}".format(self.name)

兩個HTML文件(book.html與author.html)

Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

重點:查詢author表,通過多對多的關系author_book這個表的基礎,查找出書的名稱。

Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

重點:通過book表的外鍵關聯(lián),查詢出該書的出版社名稱。

views.py處理函數

from ldap3 import Server, Connection, ALL, SUBTREE, ServerPool
from django.shortcuts import HttpResponse,render,redirect
from ormtest import models
import pyMySQL
from django.views import View
# Create your views here.

def author_list(request):
    # author = models.Author.objects.get(id=1)
    # print(author.book.all())
    all_author = models.Author.objects.all()
    return render(request,"author.html",{"author_list":all_author})

def book_list(request):
    all_book = models.Book.objects.all()
    return render(request,"book.html",{"book_list":all_book})

展示效果

Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

Author跟Book表多對多關系的增刪改查方法

1、增加作者,并添加相應的書籍

相應函數功能

def add_author(request):
    if request.method == "POST":
        new_author_name = request.POST.get("author_name")
        #getlist方法,獲取所有選擇的書籍
        books = request.POST.getlist("books")
        #創(chuàng)建一個新的作者
        new_author_obj = models.Author.objects.create(name=new_author_name)
        #為該作者添加相應的關系書籍,為在author_book表中添加相應的記錄
        new_author_obj.book.set(books)
        return HttpResponse("添加作者成功!")

    all_book = models.Book.objects.all()
    return render(request,"add_author.html",{"book_list":all_book})

    return HttpResponse("OK")

相應的html代碼

<body>
    <form action="/ormtest/add_author/" method="post">
        <p>
            作者姓名:<input type="text" name="author_name">
        </p>
        <p>
            作品:
            <select multiple name="books">
                {% for book in book_list %}
                    <option value="{{ book.id }}">{{ book.title }}</option>
                {% endfor %}

            </select>
        </p>
        <p>
            <input type="submit" value="提交">
        </p>
    </form>
</body>

展示效果:
Django 之  ORM表之間的外鍵關聯(lián)與多對多關系

2、刪除作者代碼:
def del_author(request):
    #從URL值取到要刪除的作者id
    delete_id = request.GET.get("id")
    print(delete_id)
    #根據ID值取到要刪除的對象,直接刪除
    #1、去作者和書的關聯(lián)表,把對應的關聯(lián)記錄刪除
    #2、去作者表把作者刪除
    models.Author.objects.get(id=delete_id).delete()
    return redirect("/ormtest/author/")
3、編輯作者
def edit_author(request):
    if request.method =="POST":
        #拿到提交過來的編輯后的數據
        edit_author_id = request.POST.get("author_id")
        new_author_name = request.POST.get("author_name")
        #拿到編輯后作者關聯(lián)的書籍信息
        new_books = request.POST.getlist("books")
        #根據ID找到當前編輯的作者對象
        edit_author_obj = models.Author.objects.get(id=edit_author_id)
        #更新作者名字
        edit_author_obj.name = new_author_name
        #更新作者關聯(lián)的書的對應關系
        edit_author_obj.book.set(new_books)
        #將修改提交到數據庫
        edit_author_obj.save()
        #返回作者列表頁,查看是否編輯成功
        return redirect("/ormtest/author/")

#html展示效果如添加頁面同樣

文章名稱:Django之ORM表之間的外鍵關聯(lián)與多對多關系
當前鏈接:http://aaarwkj.com/article28/ijpccp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、面包屑導航、App開發(fā)ChatGPT、定制開發(fā)電子商務

廣告

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

h5響應式網站建設
久久热在线视频精品视频| 精品视频一区二区三区中文字幕| 中文字幕国产精品资源| 蜜桃成人一区二区三区| 偷拍大神女厕偷拍作品| 传媒在线免费观看视频| 侵犯人妻中文字幕一区二区| 国产黄色片网站在线看| 国产一区在线视频无卡顿| 欧美日韩亚洲国产三级| 一区二区三区午夜激情| 成人黄片在线免费播放| 精品人妻一区二区四区| 亚洲一区成人免费电影| 超碰av之男人的天堂| 97国产一区二区精品久久呦| 风韵丰满熟妇啪啪老熟女| 人妻熟女一区二区视频| 亚洲国产传媒在线观看| 日本理论高清在线观看| 日韩一级不卡高清视频| 成人av影视中文字幕| 欧美国内日本一区二区| 久久国产精品久久国产精品| 亚洲性感人妻系列网站| 日本韩国黄色三级三级| 国产日韩欧美在线精品| 黄片视频免费在线观看播放| 亚洲精品在线观看日本| 极品丝袜美腿一区二区| 国产三级黄色大片在线免费看| 色悠悠粉嫩一区二区三区| 亚洲男人天堂超碰在线| 91性感视频在线播放| 亚洲香蕉一级视频在线播放| 在线天堂一区二区三区| 亚洲av男人电影天堂| 日本亚洲欧洲一区二区| 日本中文字幕激情在线| 亚洲老熟女老妇老女人| 亚洲精品啪啪一区二区|