Django 3.0.3: NoReverseMatch at / : Reverse for 'post_new' with no arguments not found.尝试了 1 种模式:

Django 3.0.3: NoReverseMatch at / : Reverse for 'post_new' with no arguments not found. 1 pattern(s) tried:

需要帮助。我在使用 href 时没有传递参数,但 url 模式仍在寻找参数。

硕士urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^$',include('portfolio.urls')),
    re_path(r'accounts/login/$',LoginView.as_view(),name='login'),
    re_path(r'accounts/logout/$',LogoutView,name='logout',kwargs={'next_page':'/'})
]

Portfolio.urls

   urlpatterns = [
    re_path(r'^$',views.PostListView.as_view(),name='post_list'),
    re_path(r'^about/$', views.AboutView.as_view(),name='about'),
    path ('post/new/',views.CreatePostView.as_view(),name='post_new'),
    re_path (r'^drafts/$',views.DraftListView.as_view(),name='post_draft_list'),]

<nav class="navbar navbar-dark bg-dark">
<div class ="container">
    <ul class= "navbar navbar-dark bg-dark">
        <li><a class='navbar-brand' href="{% url 'post_list' %}"> My Blog </a>
        <li><a href="https://www.github.com/">Github</a></li>
        <li><a href="https://www.linkedin.com/">Linkedin</a></li>
    </ul>    

    <ul class='nav nsvbsr-right'>
        {% if user.is_authenticated %}
            <li>
            <a href="{% url 'post_new' %}">New Post </a>
            <a href="{% url 'post_draft_list' %}">Draft </a>
            <a href="{% url 'logout' %}">Log Out</a>
            </li>
        <li>
        <a> Welcome : {{ user.username }} </a>
        </li>
        {% else %}
        <li> <a class='nav nsvbsr-right' href="{% url 'login' %}"> Login </a> </li> 
    {% endif %}
    </ul>
</div>
</nav>

我收到以下错误:

简而言之:页面在用户登录后抛出错误(即 is_authenticated 为真)。

Models.py

class CreatePostView(LoginRequiredMixin, CreateView):
    login_url="/login/"
    redirect_field_name="portfolio/post_detail.html"
    form_class = PostForm
    model = Post

从包含 portfolio.urls.

的 URL 模式中删除美元
re_path(r'^',include('portfolio.urls')),

或者切换到path:

path('',include('portfolio.urls')),