首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用指向另一个Django模板的url路径添加锚标签

无法使用指向另一个Django模板的url路径添加锚标签
EN

Stack Overflow用户
提问于 2021-06-08 07:10:59
回答 1查看 166关注 0票数 0

我正在尝试在Django中使用url添加一个锚标签,如下所示:

layout.html

代码语言:javascript
复制
{% extends "tasks/layout.html" %}
{% block body %}
    <h1>Tasks</h1>
    <ul>
        {% for task in tasks %}
            <li>{{ task }}</li>
        {% endfor %}
    </ul>
    <a href="{% url 'tasks:add' %}">Add Tasks</a>
{% endblock %}

Views.py

代码语言:javascript
复制
from django.shortcuts import render

tasks = ["foo", "bar", "baz"]

# Create your views here.
def index(request):
    return render(request, "tasks/index.html", {
        "tasks": tasks
    })

def add(request):
    return render(request, "tasks/add.html")

应用程序的urls.py

代码语言:javascript
复制
from django.urls import path

from . import views

app_name = "tasks"
urlpatterns = [
    path("", views.index, name="index"),
    path("add", views.add, name="add")
]

项目的urls.py

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', include("hello.urls")),
    path('newyear/', include("newyear.urls")),
    path('tasks/', include("tasks.urls"))
]

然而,当我使用url方法设置href时,我一直收到以下错误,但当我硬编码路径时却没有:

代码语言:javascript
复制
Error during template rendering
In template C:\Users\User\Desktop\Coding\CS50W\Week3-Django\lecture3\tasks\templates\tasks\layout.html, error at line 0
'set' object is not reversible
1 <!DOCTYPE html>
2 <html lang="en">
3     <head>
4         <title>Tasks</title>
5     </head>
6     <body>
7         {% block body %}
8         {% endblock %}
9     </body>
10 </html>
Traceback Switch to copy-and-paste view
C:\Users\User\Desktop\Coding\CS50W\Week3-Django\venv\lib\site-packages\django\core\handlers\exception.py, line 47, in inner
                response = get_response(request) …
▶ Local vars
C:\Users\User\Desktop\Coding\CS50W\Week3-Django\venv\lib\site-packages\django\core\handlers\base.py, line 181, in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
C:\Users\User\Desktop\Coding\CS50W\Week3-Django\lecture3\tasks\views.py, line 6, in index
    return render(request, "tasks/index.html", { …
▶ Local vars

有什么建议指出我可能做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 12:30:17

在app/urls.py文件中,您提到了您的app_name标签,因此每当您编写URL重定向或html模板时都必须提及

layout.html

代码语言:javascript
复制
{% extends "tasks/layout.html" %}
{% block body %}
    <h1>Tasks</h1>
    <ul>
        {% for task in tasks %}
            <li>{{ task }}</li>
        {% endfor %}
    </ul>
    <!--- i have made change here -->
    <a href="{% url 'tasks:add' %}">Add Tasks</a>
{% endblock %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67879636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档