前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python Django个人网站搭建7-实现文章修改

Python Django个人网站搭建7-实现文章修改

作者头像
zifan
发布2021-12-14 12:27:16
3360
发布2021-12-14 12:27:16
举报

作者: zifanwang  发布于2020-05-10

首先在article/views.py中增加修改文章的函数article_update()

代码语言:javascript
复制
def article_update(request, id):
   article = ArticlePost.objects.get(id=id)
   if request.method =="POST":
       article_post_form = ArticlePostForm(data=request.POST)
       if article_post_form.is_valid():
           article.title = request.POST['title']
           article.body = request.POST['body']
           article.save()
           return redirect("article:article_detail", id=id)
       else:
           return HttpResponse("表单内容有误,请重新填写")
   else:
       article_post_form = ArticlePostForm()
       context = { 'article': article, 'article_post_form': article_post_form}
       return render(request, 'article/update.html', context)

再在templates/article中创建update.html模板并写入:

代码语言:javascript
复制
{% extends "base.html" %}
{% load static %}
{% block title %}
    Edit
{% endblock title %}
{% block content %}
    <div class="container">
        <div class="row">
            <div class="col-12">
                <br>
                <form method="post" action=".">
                    {% csrf_token %}
                    <div class="form-group">
                        <label for="title">Title</label>
                        <input type="text" class="form-control" id="title" name="title" value="{{ article.title }}">

                    </div>
                    <div class="form-group">
                        <label for="body">Body</label>
                        <textarea type="text" class="form-control" id="body" name="body" rows="12">{{ article.body }}</textarea>
                    </div>
                    <button type="submit" class="btn btn-primary">submit</button>
                </form>
            </div>
        </div>
    </div>
{% endblock content %}

接着修改article/urls.py和增加修改文章入口:

代码语言:javascript
复制
from django.urls import path
from . import views
app_name = 'article'
urlpatterns = [
    path('list/', views.article_list, name='article_list'),
    path('article-detail/<int:id>/', views.article_detail, name='article_detail'),
    path('article-create/', views.article_create, name="article_create"),
    path('article-delete/<int:id>', views.article_delete, name="article_delete"),
    path('article-update/<int:id>/', views.article_update, name="article_update"),
]

再修改detail.html:

代码语言:javascript
复制
{% extends "base.html" %}
{% load static %}
{% block title %}
    article
{% endblock title %}
{% block content %}
    <div class="container">
        <div class="row">
            <h1 class="col-12 mt-4">{{ article.title }}</h1>
            <div class="col-12 alert alert-success">Author: {{ article.author }}</div>
        .<a href="#" onclick="confirm_delete()">Delete</a>
        .<a href="{% url "article:article_update" article.id %}">Edit</a>
            <div class="col-12">
                <p>{{ article.body|safe }}</p>
            </div>
        </div>
    </div>
    <script>
        function confirm_delete(){
            var r=confirm("Wanna delete?");
            if (r==true)
            {
                 window.location='{% url "article:article_delete" article.id %}';
            }
        }
    </script>
{% endblock content %}

接着我们运行服务器(python manage.py runserver)再看一下效果,打开一篇文章:

可以看到增加了Edit链接,我们点击链接。可以看见可以编辑文章了,

修改后点击submit就可以保存修改后的文章了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档