大佬们,我进不去,为什么功能不起作用。来自 HTML 的行:
<a href="/articles/addlike/{{ article.id }}/"><img src="{% static "like.jpg" %}" width="25px" height="25px"></a>{{ article.article_likes }}
网址格式:
urlpatterns = [
url(r'^1/', views.basic_one),
url(r'^articles/all/$', views.articles),
url(r'^articles/get/(?P<article_id>\d+)/$', views.article),
url(r'^', views.articles),
url(r'^articles/addlike/(?P<article_id>\d+)/$', views.addlike, name='addlike'),
url(r'^articles/addcomment/(?P<article_id>\d+)/$', views.addcomment),
]
看法:
def addlike(request, article_id):
try:
article = Article.objects.get(id=article_id)
article.article_likes += 1 #в модели поле models.IntegerField(default=0)
article.save()
except ObjectDoesNotExist:
raise Http404
return redirect('/')
它不会给出错误,在浏览器中单击类似图标后,应该将数据库中的值增加 1,一切都保持在同一个地方,数据库中的值不会改变,地址栏中的链接将采取http://127.0.0.1:8000/articles/addlike/1/的形式就可以了……滴到哪里?
显示整个 urls.py,很可能你的 url 由于行尾缺少 $ 而在调度程序中被拦截,并且没有落入所需的视图中。
Vue可以简化
在调度程序中,您可以命名 url 以避免在 html 链接中进行硬编码
在模板中: