【问题标题】:Django 3.0.3: NoReverseMatch at / : Reverse for 'post_new' with no arguments not found. 1 pattern(s) tried:Django 3.0.3:NoReverseMatch at / :“post_new”的反向,没有找不到参数。尝试了 1 种模式:
【发布时间】:2020-06-16 13:55:17
【问题描述】:

需要帮助。我在使用 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为真)。

模型.py

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

【问题讨论】:

    标签: django django-models django-views django-templates django-3.0


    【解决方案1】:

    从包含 portfolio.urls 的 URL 模式中删除美元。

    re_path(r'^',include('portfolio.urls')),
    

    或切换到path

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      相关资源
      最近更新 更多