個人文章點讚評論

2022-04-10 23:04:18 字數 3176 閱讀 4005

# 單篇文章

def article_detail(request, username, article_id):

"""文章展示

:param request:

:param username:

:param article_id:

:return:

"""print(article_id)

article_obj = models.article.objects.filter(pk=article_id).first()

comment_obj = models.comment.objects.filter(article_id=article_id)

return render(request, '07article_detail.html', locals())

import json

from django.db.models import f

from django.utils.safestring import mark_safe # 模板語法標籤

# 點讚點踩

def upanddown(request):

"""點讚

:param request:

:return:

"""if request.is_ajax():

if request.method == 'post':

back_dic =

# 1.判斷使用者是否登入

if request.user.is_authenticated:

isup = request.post.get('isup')

article_id = request.post.get('article_id')

isup = json.loads(isup)

print(isup, type(isup))

# 2.判斷使用者點讚的當前文章是否是自己的文章

article_obj = models.article.objects.filter(pk=article_id).first()

print(request.user == article_obj.blog.userinfo)

if not (request.user == article_obj.blog.userinfo):

# 3.校驗使用者是否已經點過了

is_click = models.upanddown.objects.filter(user=request.user, article=article_id)

if not is_click:

# 4.操作文章資料庫,更新記錄

if isup:

models.article.objects.filter(pk=article_id).update(up_num=f('up_num') + 1)

back_dic['msg'] = '點讚成功'

else:

models.article.objects.filter(pk=article_id).update(down_num=f('down_num') + 1)

back_dic['msg'] = '點踩成功'

# 5 操作點讚點彩表

models.upanddown.objects.create(user=request.user, article=article_obj, is_up=isup)

else:

back_dic['code'] = 1001

back_dic['msg'] = '你已經點過了'

else:

back_dic['code'] = 1002

back_dic['msg'] = '不能給自己點讚'

else:

back_dic['code'] = 1002

back_dic['msg'] = '請先登入'

print(back_dic)

return jsonresponse(back_dic)

from django.db import transaction

def comment(request):

""":param request:

:return:

"""if request.is_ajax():

print(request.post)

if request.method == 'post':

back_dic =

article_id = request.post.get('article_id')

content = request.post.get('content')

parent_id = request.post.get('parent_id')

print(request.post)

print(content)

with transaction.atomic():

models.article.objects.filter(pk=article_id).update(comment_num=f('comment_num') + 1)

models.comment.objects.create(user=request.user, article_id=article_id, content=content,

parent_id=parent_id)

print(back_dic)

return jsonresponse(back_dic)

}    }}

暱稱:

登入註冊

發布個人文章

1 開啟src views articles create.vue檔案,複製以下 替換原79 更改說明 2 查詢1 3 查詢1 發 布 開啟src store index.js檔案,新增articles和update articles 注釋部分是涉及的修改 src store index.js 1....

個人文章目錄索引

1.單元測試系列文章 走進單元測試一 初認unit test 走進單元測試二 測試需要從哪些方面著手 走進單元測試三 實戰單元測試 走進單元測試四 單元測試背後的思考和感悟 2.迭代器系列文章 迭代器學習之一 使用ienumerable和ienumerator介面 迭代器學習之二 陣列的可列舉型別和...

vue個人部落格開發記錄 實現文章點讚功能(三)

1.後端 1.1 增加文章中點贊對應的規則const articleschema monoogse.schema 省略 新增點讚對應的規則,關聯user 使用者表 praise 1.2 增加對應的介面 點讚介面 router.post praise async req,res req.body if...