Skip to main content
 首页 » 编程设计

python之反转 'home',参数 '()' 和关键字参数 '{}' 未找到。 0 种模式已尝试 : []

2025年05月04日28arxive

我的项目名称是“trydjango19”,我有两个应用程序:“newsletter”和“posts”。

trydjango19/urls.py 是:

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^posts/', include("posts.urls", namespace='posts')), 
    url(r'^', include("newsletter.urls", namespace='newsletter')),] 

newsletter/urls.py 是:

urlpatterns = [ 
    url(r'^', 'newsletter.views.home', name='home'),] 

newsletter/view.py 是:

def home(request): 
    title = 'ОСТАВЬТЕ ЗАЯВКУ' 
    form = SignUpForm(request.POST or None) 
    context = { 
        "title": title, 
        "form": form 
    } 
    if form.is_valid(): 
        instance = form.save(commit=False) 
 
        full_name = form.cleaned_data.get("full_name") 
        if not full_name: 
            full_name = "anonymous" 
        instance.full_name = full_name 
        instance.save() 
        context = { 
            "title": "Ваша заявка принята!" 
    } 
 
    if request.user.is_authenticated() and request.user.is_staff: 
        queryset = SignUp.objects.all().order_by('-timestamp')  
        context = { 
            "queryset": queryset 
        } 
 
    return render(request, "newsletter/home.html", context) 

newsletter/templates/newsletter/home.html 是:

{% extends 'newsletter/base.html' %} 
{% load crispy_forms_tags %} 
{% load staticfiles %} 
 
{% block head_title %}Welcome | {{ block.super }}{% endblock %} 
 
{% block jumbotron %} 
    {% if not request.user.is_authenticated %} 
 
            <img class="close" onclick="show('none')" src="{% static 'img/close.png' %}"> 
 
            <p class='lead text-align-center'>{{ title }}</p> 
 
            <form method='POST' action=''>{% csrf_token %} 
                {{ form|crispy }} 
                <p class='text-align-center'> 
                    <input class='btn btn-primary' type='submit' value='Откликнуться' /> 
                </p> 
            </form> 
        </div> 
<img src="{% static 'img/pony.png' %}" width='380px' /> 
... etc. 

我以多种方式尝试使用 urls.py,使用“命名空间”和“应用程序名称”,但我仍然不明白它应该如何正确运行

In template /home/pavel/DJANG/django19/src/newsletter/templates/newsletter/home.html, error at line 0 
Reverse for 'home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

请您参考如下方法:

我推测您在 base.html 中使用了 url 标签,类似如下:

{% url 'home' %} 

但在主 urls.py 文件中,您为 newsletter 应用程序中的子 urls.py 文件确定了 namespace 。

将此 url 标记更改为以下内容:

{% url 'newsletter:home' %} 

或者从 url(r'^', include("newsletter.urls", namespace='newsletter')),] 行中删除命名空间参数。


注意事项:
设置结束主页 url 模式更好,但这不会引发异常:

urlpatterns = [ 
    url(r'^$', 'newsletter.views.home', name='home'),]