html - 未找到带有关键字参数“{'pk': 1}”的“喜欢”的反向操作。尝试了 1 种模式:['datasecurity/likes/'] 像 django 中的按钮错误
问题描述
注册和登录页面工作正常,但我的喜欢按钮不起作用..我不知道为什么......有人可以帮我解决这个问题......这将是很大的帮助,请帮助谢谢!
视图.py`
from django.shortcuts import render, get_object_or_404 from datasecurity.models import Post from django.urls import reverse from django.http import HttpResponseRedirect from django.contrib.auth.decorators import login required # Create your views here. def datasecurity(request): allPosts= Post.objects.all() context={'allPosts': allPosts} return render(request, 'datasecurity/data.html',context=context) def blogHome(request, slug): post=Post.objects.filter(slug=slug).first() context={"post":post} return render(request, "datasecurity/blogHome.html", context) @login_required def likes(request, pk): post=get_object_or_404(Post, id=request.POST.get('post_id')) post.likes.add(request.user) return HttpResponseRedirect(reverse('datasecurity:blogHome', args=str(pk)))
网址.py
from django.conf.urls import url from . import views app_name = 'datasecurity' urlpatterns = [ url(r'^$', views.datasecurity, name="datasecurity"), url(r'^datasecurity/(?P<slug>[^/]+)', views.blogHome, name='blogHome'), url(r'^likes/<int:pk>', views.likes, name = "likes"), ]
数据.html
{% extends 'careforallapp/navbar.html' %} {% block body_block %} {% load static %}
欢迎来到数据安全
{% for post in allPosts %} <div class="line-dec"></div> <span >This is a Bootstrap v4.2.1 CSS Template for you. Edit and use this layout for your site. Updated on 21 May 2019 for repeated main menu HTML code.</span > </div> <div class="left-image-post"> <div class="row"> <div class="col-md-6"> <div class="left-image"> {% if post.img %} <img src="{{ post.img.url }}" alt="" /> {% endif %} </div> </div> <div class="col-md-6"> <div class="right-text"> <h4>{{post.title}}</h4> <h6>Article by {{post.author}}</h6> <h2>{{post.datetime}}</h2> <p> {{post.content|safe | truncatechars:280}} </p> <from action = "{% url 'datasecurity:likes' pk=post.pk %}" method = "POST"> {% csrf_token %} <button type="submit" name="post_id" value = "{{ post_id }}" class="btn"> Like </button> </form> <div class="white-button"> <a href="{% url 'datasecurity:blogHome' slug=post.slug %}">Read More</a> </div><br> </div> {% endfor %}
错误信息
<from action = "{% url 'datasecurity:likes' pk=post.pk %}" method = "POST">
- 未找到带有关键字参数“{'pk': 1}”的“喜欢”的反向操作。尝试了 1 种模式:['datasecurity/likes/int:pk']
当我调试代码时,这个消息被突出显示。所以有人可以告诉我我的代码中遗漏了什么......谢谢!
解决方案
你没有pk
从观点中接受论点。将您的视图更改为:
@login_required
def likes(request, pk):
post=get_object_or_404(Post, id=pk)
和网址:
url(r'^likes/(?P<pk>\d+)/', views.likes, name = "likes"),
注意 url 中使用的正则表达式。
推荐阅读
- c# - 汽车经销商管理软件
- uml - 加入前来自单个分支的多个令牌
- angular - 在 writeValue 中更新 ControlValueAccessor 的输出值
- aws-lambda - AWS Lambda 与 Elastic Beanstalk
- node.js - req.user 在 1-2 分钟后使用 passport.js 清除
- javascript - 通过用户输入在 JavaScript 中进行闰年编程
- google-bigquery - 如何计算bigquery中两个字符串的字母差异?
- javascript - 为什么javascript不显示警报?
- c - 用零初始化数组
- reactjs - 将 onPress 处理程序附加到在组件外部构造的 Text