zoukankan      html  css  js  c++  java
  • Django -- 一对多建表增删改查

    一对多表结构

    ForeignKey -- 设置外键与另一张表关联

    class Book(models.Model):
        title = models.CharField(max_length=32)
        pub = models.ForeignKey('Publisher', on_delete=models.CASCADE) # 外键 -- 关联表另一张表

    查询

    all_books = models.Book.objects.all() # 获取所有的数据
    print(all_books)
    for book in all_books:
        print(book)  # 得到一个数据对象
        print(book.pk)  # 数据对象的主键ID
        print(book.title)  # 数据对象的title字段的值
        print(book.pub, type(book.pub))  # 外键关联的对象
        print(book.pub_id, type(book.pub_id))  # 外键关联的对象的ID

    新增

    def book_add(request):
        if request.method == 'POST':  # 判断请求方法
            title = request.POST.get('title')  # 通过input框的name='title'属性获取value值(输入内容)
            pub_id = request.POST.get('pub_id')  # 同上
            # models.Book.objects.create(title=title, pub=models.Publisher.objects.get(pk=pub_id))
            models.Book.objects.create(title=title, pub_id=pub_id)  # 同步到数据库,(数据库字段=获取的值)
            return redirect('/book_list/')  # 重定向,跳转页面

    删除

    def book_del(request):
        pk = request.GET.get('pk')  # 获取url中 pk对应的value值
        models.Book.objects.filter(pk=pk).delete()  # 比较Book表中的pk值与获取url的pk值,相同就删除
        return redirect('/book_list/')

    编辑

    def book_edit(request):
        pk = request.GET.get('pk')  # 获取发送GET请求对应的pk值
        book_obj = models.Book.objects.filter(pk=pk).first()  # 获取pk值对应数据对象
        if request.method == 'POST':
            title = request.POST.get('title')  # input框中name='title'属性对应的value值
            pub_id = request.POST.get('pub_id')
    ​
            book_obj.title = title  # 修改book表数据对象的值
            book_obj.pub_id = pub_id  # 通过pub_id获取到option的value值,并修改book表中的值,(pub_id外键对应publisher表中的pk值对应的数据)
            book_obj.save()  # 提交数据
            return redirect('/book_list/')
  • 相关阅读:
    N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
    淘宝API开发系列商家的绑定
    在linux上使用ASP
    petshop4.0 详解之五(PetShop之业务逻辑层设计)
    vsFTPd 服务器
    中国联通短信如何 对接
    淘宝API开发系列开篇概述
    “VPS FTP应用”目录存档
    使用c#+(datagrid控件)编辑xml文件
    Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
  • 原文地址:https://www.cnblogs.com/Agoni-7/p/11420937.html
Copyright © 2011-2022 走看看