Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 实现注释选项时NoReverseMatch at/error_Python_Html_Django - Fatal编程技术网

Python 实现注释选项时NoReverseMatch at/error

Python 实现注释选项时NoReverseMatch at/error,python,html,django,Python,Html,Django,我正在尝试为django社交媒体应用程序实现一个评论选项,我得到了NoReverseMatch at/error 诺维塞马奇/ 找不到参数为“(10,)”的“发布详细信息”的反转。已尝试1个模式:[“post/int:pk/$”] 我已经阅读并了解到它似乎找不到post_detail.html的url。我查阅了很多类似的问题,但我找不到任何对我的案例有帮助的东西。我将学习本教程: 我试图改变在url.py中声明url的方式,但到目前为止似乎没有任何效果。我包括相关的python和html文件,按

我正在尝试为django社交媒体应用程序实现一个评论选项,我得到了NoReverseMatch at/error

诺维塞马奇/ 找不到参数为“(10,)”的“发布详细信息”的反转。已尝试1个模式:[“post/int:pk/$”]

我已经阅读并了解到它似乎找不到post_detail.html的url。我查阅了很多类似的问题,但我找不到任何对我的案例有帮助的东西。我将学习本教程:

我试图改变在url.py中声明url的方式,但到目前为止似乎没有任何效果。我包括相关的python和html文件,按长度编辑

url.py

from django.conf.urls import url, include
from myapp import views as core_views
from django.contrib.auth.views import LoginView, LogoutView
from django.contrib import admin

urlpatterns = [
url(r'^$', core_views.PostListView.as_view(), name ='home'),
url(r'^post/<int:pk>/$', core_views.post_detail, name='post-detail']
...
@login_required
def post_detail(request, pk):
  post = get_object_or_404(Post, pk=pk)
  user = request.user
  is_liked =  Like.objects.filter(user=user, post=post)
  if request.method == 'POST':
        form = NewCommentForm(request.POST)
        if form.is_valid():         
          data = form.save(commit=False)
          data.post = post
          data.username = user
          data.save()
          return redirect('post-detail', pk=pk)
  else:
        form = NewCommentForm()
  return render(request, 'feed/post_detail.html',{'post':post, 'is_liked':is_liked, 'form':form})
...
...
class Post(models.Model):
    description = models.CharField(max_length=255, blank=True)
    pic = models.ImageField(upload_to='static/images')
    date_posted = models.DateTimeField(default=timezone.now)
    user_name = models.ForeignKey(User, on_delete=models.CASCADE)
    tags = models.CharField(max_length=100, blank=True)
    
    def __str__(self):
            return self.description
    
    def get_absolute_url(self):
            return reverse('post-detail', kwargs={'pk': self.pk})
...
home.html

{% extends 'base.html' %}
...
 {% for post in posts %}
        <div class="card card-signin my-5">
          <div class="card-body">
            <a href="{{ post.user_name.profile.get_absolute_url }}"></a>
            <a class="text-dark" href="{{ post.user_name.profile.get_absolute_url }}"><b>{{ post.user_name }}</b></a>
            <br><small class="text-muted">Posted on {{ post.date_posted }}</small>
            <br><br>
            <p class="card-text text-dark">{{ post.description }}</p>
          </div>
          <a href="{% url 'post-detail' post.id %}"></a><img class="card-img-top" src="{{post.pic.url}}" alt="Picture not found"></a>
          {% if post.tags %}
          <br>
          <p class="text-danger ml-3"><b>Tags: <i>{{ post.tags }}</i></b></p>
          {% endif %}  
          <div class="card-footer">
            <a class="btn btn-outline-info" href="{% url 'post-detail' %}">Comments | {{ post.details.count }}</a>
          </div>
        </div>
        {% endfor %} 
...
最后是错误跟踪

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/

Django Version: 3.1.7
Python Version: 3.9.1
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'pigeonpost',
 'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template myProject\backend\pigeonpost\templates\base.html, error at line 0
   Reverse for 'post-detail' with arguments '(10,)' not found. 1 pattern(s) tried: ['post/<int:pk>/$']
   1 : <!DOCTYPE html>
   2 : <html lang="en">
   3 :   <head>
   4 :     <meta name="viewport" content="width=device-width, initial-scale=1">
   5 :     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
   6 :     <meta charset="UTF-8">
   7 :     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
   8 :     <meta charset="utf-8">
   9 :     <title>{% block title %}PigeonPost{% endblock %}</title>
   10 :   </head>

Traceback (most recent call last):
  File "myProject\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "myProject\lib\site-packages\django\core\handlers\base.py", line 204, in _get_response
    response = response.render()
  File "myProject\lib\site-packages\django\template\response.py", line 105, in render
    self.content = self.rendered_content
  File "myProject\lib\site-packages\django\template\response.py", line 83, in rendered_content
    return template.render(context, self._request)
  File "myProject\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "myProject\site-packages\django\template\base.py", line 170, in render
    return self._render(context)
  File "myProject\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "myProject\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "myProject\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "myProject\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "myProject\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "myProject\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "myProject\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "myProject\lib\site-packages\django\template\loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "myProject\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "myProject\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "myProject\lib\site-packages\django\template\defaulttags.py", line 211, in render
    nodelist.append(node.render_annotated(context))
  File "myProject\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "myProject\lib\site-packages\django\template\defaulttags.py", line 446, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "myProject\lib\site-packages\django\urls\base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "myProject\lib\site-packages\django\urls\resolvers.py", line 685, in _reverse_with_prefix
    raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'post-detail' with arguments '(10,)' not found. 1 pattern(s) tried: ['post/<int:pk>/$']

环境:
请求方法:获取
请求URL:http://127.0.0.1:8000/
Django版本:3.1.7
Python版本:3.9.1
已安装的应用程序:
['django.contrib.admin',
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“rest_框架”,
“鸽子站”,
“脆皮形式”]
已安装的中间件:
['django.middleware.security.SecurityMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xframeoptions中间件']
模板错误:
在模板myProject\backend\digepost\templates\base.html中,第0行出现错误
找不到参数为“(10,)”的“发布详细信息”的反转。已尝试1个模式:['post/$']
1 : 
2 : 
三:
4 :     
5 :     
6 :     
7 :     
8 :     
9:{%block title%}鸽子贴{%endblock%}
10 :   
回溯(最近一次呼叫最后一次):
文件“myProject\lib\site packages\django\core\handlers\exception.py”,第47行,在内部
响应=获取响应(请求)
文件“myProject\lib\site packages\django\core\handlers\base.py”,第204行,在\u get\u响应中
response=response.render()
文件“myProject\lib\site packages\django\template\response.py”,第105行,在render中
self.content=自渲染内容
文件“myProject\lib\site packages\django\template\response.py”,第83行,呈现内容
返回template.render(上下文、self.\u请求)
文件“myProject\lib\site packages\django\template\backends\django.py”,第61行,在render中
返回self.template.render(上下文)
文件“myProject\site packages\django\template\base.py”,第170行,在render中
返回self.\u呈现(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第162行,在
返回self.nodelist.render(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第938行,在render中
位=节点。带注释的渲染(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第905行,在render_注释中
返回self.render(上下文)
文件“myProject\lib\site packages\django\template\loader\u tags.py”,第150行,呈现
返回编译的\u父对象。\u呈现(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第162行,在
返回self.nodelist.render(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第938行,在render中
位=节点。带注释的渲染(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第905行,在render_注释中
返回self.render(上下文)
文件“myProject\lib\site packages\django\template\loader\u tags.py”,第62行,在render中
结果=block.nodelist.render(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第938行,在render中
位=节点。带注释的渲染(上下文)
文件“myProject\lib\site packages\django\template\base.py”,第905行,在render_注释中
返回self.render(上下文)
文件“myProject\lib\site packages\django\template\defaulttags.py”,第211行,在render中
nodelist.append(node.render_注释(上下文))
文件“myProject\lib\site packages\django\template\base.py”,第905行,在render_注释中
返回self.render(上下文)
文件“myProject\lib\site packages\django\template\defaulttags.py”,第446行,在render中
url=reverse(视图名称,args=args,kwargs=kwargs,当前应用程序=当前应用程序)
文件“myProject\lib\site packages\django\url\base.py”,第87行,相反
将iri_返回到_uri(解析器。_使用_前缀反向_(视图,前缀,*args,**kwargs))
文件“myProject\lib\site packages\django\url\resolvers.py”,第685行,带前缀的\u reverse\u
提升NoReverseMatch(msg)
异常类型:NoReverseMatch位于/
异常值:找不到参数为“(10,)”的“发布详细信息”的相反值。已尝试1个模式:['post/$']

任何事都会大有帮助!谢谢。

首先,最后一个标记具有post detail URL,但没有必需的整数变量

第二,你不应该在文章中循环,因为它是一个单一的对象

第三,根据您显示的视图,没有名为“posts”的上下文变量。这是帖子。

我已经解决了我的问题! 我需要改变我调用url的方式,因为这是旧的方式

 path('post/<int:pk>/', core_views.post_detail, name='post-detail')
path('post/',core_views.post_detail,name='post-detail')

这是正确的方法。

谢谢你的第一句话。对于另外两个,这是因为我在页面的列表中显示了它们。所有这些都在文件的其他部分中定义并正常工作。只有在尝试实现注释选项时,我才会遇到此错误消息。而且,这并不能解决我的问题