公木端直 2022-04-27 21:49 采纳率: 0%
浏览 104
已结题

如何用django生成博客系统出问题:Reverse for 'archives' with arguments '('', '')' not found?

问题遇到的现象和发生背景

环境:python3.10+django3.2.13
问题描述:

http://localhost:8001/login/

本地登录页正常,登录后跳转到index.html出错。

问题相关代码,请勿粘贴截图

1、index.html引用的base.html相关部分:(index.html代码已经在下面的回复中做了补充)

 <div class="panel-body">
                        {% archives as date_list %}
                        <ul>
                            {% for date in date_list %}
                            <li>
                                <a href="{% url 'blog:archives' date.year date.month %}">
                                    {{ date.year }}{{ date.month }}</a>
                            </li>
                            {% empty %}
                            暂无归档!
                            {% endfor %}
                        </ul>
                    </div>

2、views.py中的

def archives(request, year, month):
   blog_list = models.Blog.objects.filter(created_time__year=year, created_time__month=month).order_by('-created_time')
   return render(request, 'blog/index.html', context={'blog_list':blog_list})

3、blog\url.py中的patterns设置:

 from django.urls import path,re_path
from . import views
app_name = 'blog'
urlpatterns = [
    path('',views.indexview.as_view(),name='index'),
    path('myindex/<int:loguserid>/',views.myindex.as_view(),name='myindex'),
    path('authorindex/<int:id>/',views.authorindex.as_view(),name='authorindex'),
    re_path('blog/(?P<pk>[0-9]+)/',views.blogdetailview.as_view(),name='detail'),
    re_path('archives/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/', views.archives, name='archives'),
    re_path('category/(?P<pk>[0-9]+)/', views.categoryview.as_view(), name='category'),
    re_path('tag/(?P<pk>[0-9]+)/', views.tagview.as_view(), name='tag'),
    path('search/', views.search, name='search'),
    path('login/', views.login,name='login'),
    path('registe/', views.registe,name='registe'),
    path('logout/',views.logout,name='logout'),
    path('test_ckeditor_front/',views.test_ckeditor_front),
]

运行结果及报错内容

NoReverseMatch at /
Reverse for 'archives' with arguments '('', '')' not found. 1 pattern(s) tried: ['archives/(?P[0-9]{4})/(?P[0-9]{1,2})/']
Request Method: GET
Request URL: http://localhost:8001/
Django Version: 3.2.13
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'archives' with arguments '('', '')' not found. 1 pattern(s) tried: ['archives/(?P[0-9]{4})/(?P[0-9]{1,2})/']
Exception Location: D:\mysite\gtu\lib\site-packages\django\urls\resolvers.py, line 698, in _reverse_with_prefix
Python Executable: D:\mysite\gtu\Scripts\python.exe
Python Version: 3.10.4
Python Path:
['D:\mysite\gtu_blog',
'D:\Program Files\Python310\python310.zip',
'D:\Program Files\Python310\DLLs',
'D:\Program Files\Python310\lib',
'D:\Program Files\Python310',
'D:\mysite\gtu',
'D:\mysite\gtu\lib\site-packages']
Server time: Wed, 27 Apr 2022 21:44:37 +0800
Error during template rendering
In template D:\mysite\gtu_blog\templates\base.html, error at line 140

Reverse for 'archives' with arguments '('', '')' not found. 1 pattern(s) tried: ['archives/(?P[0-9]{4})/(?P[0-9]{1,2})/']

130                            </div>
131                        </div>
132                    </div>
133                    <div class="panel panel-default">
134                        <div class="panel-heading">归档</div>
135                        <div class="panel-body">
136                            {% archives as date_list %}
137                            <ul>
138                                {% for date in date_list %}
139                                <li>
140                                    <a href="{% url 'blog:archives' date.year date.month %}">
141                                        {{ date.year }} 年 {{ date.month }}月</a>
142                                </li>
143                                {% empty %}
144                                暂无归档!
145                                {% endfor %}
146                            </ul>
147                        </div>
148                    </div>
149    
150                    {% endblock toc %}

Traceback Switch to copy-and-paste view
D:\mysite\gtu\lib\site-packages\django\core\handlers\exception.py, line 47, in inner
response = get_response(request) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\core\handlers\base.py, line 204, in _get_response
response = response.render() …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\response.py, line 105, in render
self.content = self.rendered_content …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\response.py, line 83, in rendered_content
return template.render(context, self._request) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\backends\django.py, line 61, in render
return self.template.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 170, in render
return self._render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 162, in _render
return self.nodelist.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 938, in render
bit = node.render_annotated(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 905, in render_annotated
return self.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\loader_tags.py, line 150, in render
return compiled_parent._render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 162, in _render
return self.nodelist.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 938, in render
bit = node.render_annotated(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 905, in render_annotated
return self.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\loader_tags.py, line 62, in render
result = block.nodelist.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 938, in render
bit = node.render_annotated(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 905, in render_annotated
return self.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\defaulttags.py, line 214, in render
nodelist.append(node.render_annotated(context)) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\base.py, line 905, in render_annotated
return self.render(context) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\template\defaulttags.py, line 449, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\urls\base.py, line 86, in reverse
return resolver._reverse_with_prefix(view, prefix, *args, **kwargs) …
▶ Local vars
D:\mysite\gtu\lib\site-packages\django\urls\resolvers.py, line 698, in _reverse_with_prefix
raise NoReverseMatch(msg) …
▶ Local vars

我的解答思路和尝试过的方法

1、检查index.html及base.html;
2、检查archives函数;
3、检查urls.py设置;

我想要达到的结果

正常出现博客首页。

  • 写回答

5条回答 默认 最新

  • 公木端直 2022-04-27 22:00
    关注

    index.html代码:

    {% extends 'base.html' %}
    {% block main %}
    {% if error_msg %}
    <p>{{ error_msg }}</p>
    {% endif %}
    {% for blog in blog_list %}
    <div class="media">
        <div class="media-left">
            <a href="{% url 'blog:authorindex' blog.author.id %}">
                <img class="media-object" src="/media/{{ blog.author.head_img }}" style="width:100px;height:100px;"
                     alt="点击头像显示此作者的博客文章列表">
            </a>
        </div>
        <div class="media-body">
            <h3 class="media-heading"><a href="{{ blog.get_absolute_url }}">{{ blog.title }}</a></h3>
            <p>{{ blog.excerpt|safe }}...</p>
            <div class="entry-meta">
                <span class="blog-category"><a href="#">{{ blog.category.name }}</a></span>
                <span class="blog-date"><a href="#"><time class="entry-date"
                                                          datetime="{{ blog.created_time }}">{{ blog.created_time }}</time></a></span>
                <span class="blog-author"><a href="#">{{ blog.author.nikename }}</a></span>
                <span class="comments-link"><a href="#">{{ blog.comment_set.count }} 评论</a></span>
                <span class="views-count"><a href="#">{{ blog.views }} 阅读</a></span>
            </div>
        </div>
        {% empty %}
        <div class="no-post">暂时还没有发布的文章!</div>
        {% endfor %}
    
        <!-- 简单分页效果
        <div class="pagination-simple">
            <a href="#">上一页</a>
            <span class="current">第 6 页 / 共 11 页</span>
            <a href="#">下一页</a>
        </div>
        -->
        {% if is_paginated %}
        <nav aria-label="Page navigation">
            <ul class="pagination">
                {% if left %}
                <li>
                    <a href="?page={{ page_obj.previous_page_number }}" aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
                {% else %}
                <li class="disabled">
                    <a href="#" aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
                {% endif %}
                {% for i in left %}
                <li><a href="?page={{ i }}">{{ i }}</a></li>
                {% endfor %}
                <li class="active"><a href="?page={{ page_obj.number }}">{{ page_obj.number }} <span class="sr-only">(current)</span></a>
                </li>
    
    
                {% for i in right %}
                <li><a href="?page={{ i }}">{{ i }}</a></li>
                {% endfor %}
                {% if right %}
                <li>
                    <a href="?page={{ page_obj.next_page_number }}" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
                {% else %}
                <li class="disabled">
                    <a href="#" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
    
                {% endif %}
            </ul>
        </nav>
        {% endif %}
        {% endblock main %}
    
    
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月4日
  • 修改了问题 4月28日
  • 修改了问题 4月28日
  • 修改了问题 4月28日
  • 展开全部

悬赏问题

  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?