当前位置:   article > 正文

一周学会Django5 Python Web开发-Django5模型数据修改_django 5

django 5

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计47条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/模型数据修改和添加都是用的save方法。

我们结合案例先实现下;

我们在views.py里先定义preUpdate方法,修改预处理,根据id获取图书信息,以及获取图书类别列表;

  1. def preUpdate(request, id):
  2. """
  3. 预处理,修改操作
  4. :param request:
  5. :return:
  6. """
  7. print("id:", id)
  8. book = BookInfo.objects.get(id=id)
  9. print(book)
  10. bookTypeList = BookTypeInfo.objects.all()
  11. print(bookTypeList)
  12. content_value = {"title": "图书修改", "bookTypeList": bookTypeList, "book": book}
  13. return render(request, 'book/edit.html', context=content_value)

urls.py里加下映射:

path('book/preUpdate/<int:id>', helloWorld.views.preUpdate),

book/list.html修改下,加下修改操作链接:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{{ title }}</title>
  6. </head>
  7. <body>
  8. <h3>{{ title }}</h3>
  9. <a href="/book/preAdd">添加</a><br/><br/>
  10. <table border="1">
  11. <tr>
  12. <th>编号</th>
  13. <th>图书名称</th>
  14. <th>价格</th>
  15. <th>出版日期</th>
  16. <th>图书类别</th>
  17. <th>操作</th>
  18. </tr>
  19. {% for book in bookList %}
  20. <tr>
  21. <td>{{ book.id }}</td>
  22. <td>{{ book.bookName }}</td>
  23. <td>{{ book.price }}</td>
  24. <td>{{ book.publishDate | date:'Y-m-d' }}</td>
  25. <td>{{ book.bookType.bookTypeName }}</td>
  26. <td>
  27. <a href="/book/preUpdate/{{ book.id }}">修改</a>
  28. </td>
  29. </tr>
  30. {% endfor %}
  31. </table>
  32. </body>
  33. </html>

新建编辑页面edit.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{{ title }}</title>
  6. </head>
  7. <body>
  8. <h3>{{ title }}</h3>
  9. <form action="/book/update" method="post">
  10. {% csrf_token %}
  11. <table>
  12. <tr>
  13. <td>图书名称:</td>
  14. <td>
  15. <input type="text" name="bookName" value="{{ book.bookName }}">
  16. </td>
  17. </tr>
  18. <tr>
  19. <td>出版日期:</td>
  20. <td>
  21. <input type="text" name="publishDate" value="{{ book.publishDate | date:'Y-m-d' }}">
  22. </td>
  23. </tr>
  24. <tr>
  25. <td>图书类别:</td>
  26. <td>
  27. <select name="bookType_id">
  28. {% for bookType in bookTypeList %}
  29. <option value="{{ bookType.id }}"
  30. {% if book.bookType.id == bookType.id %}selected{% endif %}>
  31. {{ bookType.bookTypeName }}
  32. </option>
  33. {% endfor %}
  34. </select>
  35. </td>
  36. </tr>
  37. <tr>
  38. <td>图书价格:</td>
  39. <td>
  40. <input type="text" name="price" value="{{ book.price }}">
  41. </td>
  42. </tr>
  43. <tr>
  44. <td colspan="2">
  45. <input type="hidden" name="id" value="{{ book.id }}">
  46. <input type="submit" value="提交">
  47. </td>
  48. </tr>
  49. </table>
  50. </form>
  51. </body>
  52. </html>

再写一个update方法,保存图书信息

  1. def update(request):
  2. """
  3. 图书修改
  4. :param request:
  5. :return:
  6. """
  7. book = BookInfo()
  8. book.id = request.POST.get("id")
  9. book.bookName = request.POST.get("bookName")
  10. book.publishDate = request.POST.get("publishDate")
  11. book.bookType_id = request.POST.get("bookType_id")
  12. book.price = request.POST.get("price")
  13. book.save()
  14. return bookList(request)

urls.py里再加下映射:

path('book/update', helloWorld.views.update),

我们来测试下,浏览器输入:http://127.0.0.1:8000/book/list

我们点修改,修改id是5的图书,

修改信息后,点提交;

测试成功!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/704242
推荐阅读
相关标签
  

闽ICP备14008679号