Jelajahi Sumber

新增了编辑文章,新增了管理user的app(刚开始)

Shellmiao 4 tahun lalu
induk
melakukan
2f10587144

+ 4 - 1
MyBlog/article/urls.py

@@ -7,5 +7,8 @@ urlpatterns = [
     path('article_list/', views.article_list, name='article_list'),
     path('', views.article_list, name='test'),
     path('article_detail/<int:id>/', views.article_detail, name='article_detail'),
-    path('article_create/',views.article_create,name='article_create'),
+    path('article_create/', views.article_create, name='article_create'),
+    path('article_delete/<int:id>/', views.article_delete, name='article_delete'),
+    path('article_safe_delete/<int:id>/', views.article_safe_delete, name='article_safe_delete'),
+    path('article_update/<int:id>/', views.article_update, name='article_update'),
 ]

+ 32 - 0
MyBlog/article/views.py

@@ -45,3 +45,35 @@ def article_create(request):
         context = {'article_post_form': article_post_form}
         # 返回模板
         return render(request, 'article/create.html', context)
+
+
+def article_delete(request, id):
+    article = ArticlePost.objects.get(id=id)
+    article.delete()
+    return redirect("article:article_list")
+
+
+def article_safe_delete(request, id):
+    if request.method == 'POST':
+        article = ArticlePost.objects.get(id=id)
+        article.delete()
+        return redirect("article:article_list")
+    else:
+        return HttpResponse("仅允许POST请求")
+
+
+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)

TEMPAT SAMPAH
MyBlog/db.sqlite3


File diff ditekan karena terlalu besar
+ 1 - 0
MyBlog/static/layer/layer.js


File diff ditekan karena terlalu besar
+ 1 - 0
MyBlog/static/layer/mobile/layer.js


File diff ditekan karena terlalu besar
+ 0 - 0
MyBlog/static/layer/mobile/need/layer.css


TEMPAT SAMPAH
MyBlog/static/layer/theme/default/icon-ext.png


TEMPAT SAMPAH
MyBlog/static/layer/theme/default/icon.png


File diff ditekan karena terlalu besar
+ 0 - 0
MyBlog/static/layer/theme/default/layer.css


TEMPAT SAMPAH
MyBlog/static/layer/theme/default/loading-0.gif


TEMPAT SAMPAH
MyBlog/static/layer/theme/default/loading-1.gif


TEMPAT SAMPAH
MyBlog/static/layer/theme/default/loading-2.gif


+ 30 - 1
MyBlog/templates/article/detail.html

@@ -10,13 +10,42 @@
                 {{ article.title }}
             </h1>
             <div class="col-12 alert alert-success">
-                作者:{{ article.author }}
+                作者: {{ article.author }}
+                 · <a href="#" onclick="confirm_delete()">
+                    删除文章
+                </a>
+                 · <a href="{% url 'article:article_update' article.id %}">
+                    编辑文章
+                </a>
+                <form style="display: none"
+                      id="safa_delete"
+                      action="{% url 'article:article_safe_delete' article.id %}"
+                      method="post"
+                >
+                    {% csrf_token %}
+                    <button type="submit">
+                        发送
+                    </button>
+                </form>
             </div>
             <div class="col-12">
                 <p>
                     {{ article.body|safe }}
                 </p>
             </div>
+
         </div>
     </div>
+    <script>
+    function confirm_delete(){
+        layer.open({
+            title:"删除文章",
+            content:"确认删除这篇文章吗?",
+            yes:function (index,layero){
+                $('form#safe_delete button').click();
+                layer.close(index);
+            },
+        })
+    }
+    </script>
 {% endblock content %}

+ 34 - 0
MyBlog/templates/article/update.html

@@ -0,0 +1,34 @@
+{% extends "base.html" %}
+{% load static %}
+{% block title %}
+更新文章
+{% 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">
+                        文章标题
+                    </label>
+                    <input type="text" class="form-control" id="title" name="title" value="{{ article.title }}">
+                </div>
+                <div class="form-group">
+                    <label for="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">
+                    提交
+                </button>
+            </form>
+        </div>
+    </div>
+</div>
+{% endblock content %}

+ 1 - 0
MyBlog/templates/base.html

@@ -17,6 +17,7 @@
 {% endblock %}
 {% include "footer.html" %}
 <script src="{% static 'jQuery/jquery-3.5.1.js' %}"></script>
+<script src="{% static 'layer/layer.js' %}"></script>
 <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1-lts/dist/umd/popper.min.js"></script>
 <script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
 </body>

+ 16 - 14
MyBlog/templates/header.html

@@ -1,20 +1,22 @@
 <!-- 定义导航栏 -->
 <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-  <div class="container">
+    <div class="container">
 
-    <!-- 导航栏商标 -->
-    <a class="navbar-brand" href="#">我的博客</a>
+        <!-- 导航栏商标 -->
+        <a class="navbar-brand" href="#">我的博客</a>
 
-    <!-- 导航入口 -->
-    <div>
-      <ul class="navbar-nav">
-        <!-- 条目 -->
-        <li class="nav-item">
-            <a class="nav-link" href="{% url 'article:article_create' %}">写文章</a>
-            <a class="nav-link" href="{% url 'article:article_list' %}">文章</a>
-        </li>
-      </ul>
-    </div>
+        <!-- 导航入口 -->
+        <div>
+            <ul class="navbar-nav">
+                <!-- 条目 -->
+                <li class="nav-item">
+                    <a class="nav-link" href="{% url 'article:article_create' %}">写文章</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="{% url 'article:article_list' %}">文章</a>
+                </li>
+            </ul>
+        </div>
 
-  </div>
+    </div>
 </nav>

+ 0 - 0
MyBlog/userprofile/__init__.py


+ 3 - 0
MyBlog/userprofile/admin.py

@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.

+ 5 - 0
MyBlog/userprofile/apps.py

@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class UserprofileConfig(AppConfig):
+    name = 'userprofile'

+ 0 - 0
MyBlog/userprofile/migrations/__init__.py


+ 3 - 0
MyBlog/userprofile/models.py

@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.

+ 3 - 0
MyBlog/userprofile/tests.py

@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.

+ 3 - 0
MyBlog/userprofile/views.py

@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini