Python - Django - 编辑作者

Python - Django - 编辑作者,第1张

概述在作者列表页面的 *** 作栏中加上编辑按钮 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>作者列表</title></head><body><h1>作者列表</h1><table border="1"> <thead> <tr>

在作者列表页面的 *** 作栏中加上编辑按钮@H_419_7@

<!DOCTYPE HTML><HTML lang="en"><head>    <Meta charset="UTF-8">    <Title>作者列表</Title></head><body><h1>作者列表</h1><table border="1">    <thead>    <tr>        <th>#</th>        <th>ID</th>        <th>名字</th>        <th>书籍</th>        <th> *** 作</th>    </tr>    </thead>    <tbody>    {% for author in author_List %}        <tr>            <td>{{ forloop.counter }}</td>            <td>{{ author.ID }}</td>            <td>{{ author.name }}</td>            <td>                {% for book in author.book.all %}                    {% if forloop.last %}                        {{ book.Title }}                    {% else %}                        {{ book.Title }} |                    {% endif %}                {% endfor %}            </td>            <td>                <a href="/del_author/?ID={{ author.ID }}">删除</a>                <a href="/edit_author/?ID={{ author.ID }}">编辑</a>            </td>        </tr>    {% endfor %}    </tbody></table><a href="/add_author/">添加书籍</a></body></HTML>

运行结果:@H_419_7@

@H_419_7@@H_419_7@

添加 edit_author.HTML@H_419_7@

<!DOCTYPE HTML><HTML lang="en"><head>    <Meta charset="UTF-8">    <Title>编辑作者</Title></head><body><h1>编辑作者</h1><form action="/edit_author/" method="post">    <input type="text" name="author_ID" value="{{ author.ID }}" >    <p>        作者姓名:<input type="text" name="author_name" value="{{ author.name }}">    </p>    <p>        书籍:        <select multiple name="books">            {% for book in book_List %}                {% if book in author.book.all %}                    <option selected value="{{ book.ID }}">{{ book.Title }}</option>                {% else %}                    <option value="{{ book.ID }}">{{ book.Title }}</option>                {% endif %}            {% endfor %}        </select>    </p>    <p>        <input type="submit" value="提交">    </p></form></body></HTML>

解析:@H_419_7@

@H_419_7@@H_419_7@

在 urls.py 中添加 edit_author 的对应关系@H_419_7@

from django.conf.urls import urlfrom django.contrib import adminfrom app01 import vIEwsurlpatterns = [    # 出版社    url(r‘^publisher_List/‘,vIEws.publisher_List),url(r‘^add_publisher/‘,vIEws.add_publisher),url(r‘^del_publisher/‘,vIEws.del_publisher),url(r‘^edit_publisher/‘,vIEws.edit_publisher),# 书籍    url(r‘^book_List/‘,vIEws.book_List),url(r‘^add_book/‘,vIEws.add_book),url(r‘^del_book/‘,vIEws.del_book),url(r‘^edit_book/‘,vIEws.edit_book),# 作者    url(r‘^author_List/‘,vIEws.author_List),url(r‘^add_author/‘,vIEws.add_author),url(r‘del_author/‘,vIEws.del_author),url(r‘edit_author/‘,vIEws.edit_author),]

在 vIEws.py 中添加 edit_author 函数@H_419_7@

from django.shortcuts import render,redirect,httpResponsefrom app01 import models# 展示出版社列表def publisher_List(request):    pass# 添加新的出版社def add_publisher(request):    pass# 删除出版社def del_publisher(request):    pass# 编辑出版社def edit_publisher(request):    pass# 展示书籍列表def book_List(request):    pass# 添加书籍def add_book(request):    pass# 删除书籍def del_book(request):    pass# 编辑书籍def edit_book(request):    pass# 作者列表def author_List(request):    # 查询所有作者    all_author = models.Author.objects.all()    return render(request,"author_List.HTML",{"author_List": all_author})# 添加作者def add_author(request):    if request.method == "POST":        # 取得提交的数据        new_author_name = request.POST.get("author_name")        # 如果提交的数据是多个值的话用 getList        books = request.POST.getList("books")        # 创建作者        new_author_obj = models.Author.objects.create(name=new_author_name)        # 把新作者和书籍建立对应关系,自动提交        new_author_obj.book.set(books)        # 跳转到作者列表页面,查看是否添加成功        return redirect("/author_List/")    # 查询所有的书籍    all_books = models.Book.objects.all()    return render(request,"add_author.HTML",{"book_List": all_books})# 删除作者def del_author(request):    # 从 url 里提取要删除的作者 ID    del_ID = request.GET.get("ID")    # 根据 ID 删除 author 表和其相关联表的数据    models.Author.objects.get(ID=del_ID).delete()    # 返回作者列表    return redirect("author_List.HTML")# 编辑作者def edit_author(request):    # 从 post 提交过来的书籍    if request.method == "POST":        # 获取提交过来的作者 ID 和姓名        edit_author_ID = request.POST.get("author_ID")        new_author_name = request.POST.get("author_name")        # 获取提交过来和作者相关联的书籍        new_book = request.POST.getList("books")        # 根据 ID 去数据库中查询当前编辑的作者对象        edit_author_obj = models.Author.objects.get(ID=edit_author_ID)        # 更新数据库中作者的名字        edit_author_obj.name = new_author_name        # 更新数据库中与作者关联的书籍的对应关系        edit_author_obj.book.set(new_book)        # 将修改保存到数据库中        edit_author_obj.save()        # 返回作者列表页面,查看编辑是否成功        return redirect("/author_List/")    # 从 url 里获取要编辑作者的 ID    edit_ID = request.GET.get("ID")    # 获取要编辑的作者对象    edit_author_obj = models.Author.objects.get(ID=edit_ID)    # 获取对象书籍对象    all_book_List = models.Book.objects.all()    return render(request,"edit_author.HTML",{"book_List": all_book_List,"author": edit_author_obj})

运行效果:@H_419_7@

@H_419_7@@H_419_7@

编辑 John@H_419_7@

@H_419_7@@H_419_7@

《Java》和《C》默认是被选择的,将 《Python》也选上@H_419_7@

@H_419_7@@H_419_7@

提交后@H_419_7@

@H_419_7@@H_419_7@

来数据库中看一下@H_419_7@

@H_419_7@@H_419_7@

作者 ID 为 1 的关联书籍多了一个 2@H_419_7@ 总结

以上是内存溢出为你收集整理的Python - Django - 编辑作者全部内容,希望文章能够帮你解决Python - Django - 编辑作者所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存