在Django模板中访问动态网址

时间:2020-02-06 17:37:28

标签: python django django-urls

如何在模板文件中调用视图函数的动态值? 我的视图函数如下所示:

@login_required(login_url="bashorunemmascrumy/accounts/login")
def move_goal(request, goal_id):

    dictionary = {'error': 'A record with that goal id does not exist'}

    try:
        goalname = ScrumyGoals.objects.get(goal_id = '%s' % goal_id)
    except Exception as e:
        return render(request, 'bashorunemmascrumy/exception.html', dictionary)

该应用程序的urlconf是:

urlpatterns = [
        path('', views.get_grading_parameters),
        path('movegoal/<int:goal_id>', views.move_goal, name="movegoal"),
]

模板是:

<p><a href={% url 'bashorunemmascrumy:movegoal' 'goal.goal_id' %}>Move Goal</a></p>

单击“移动目标”时,我希望网址栏具有“ ... / bashorunemmascrumy / movegoal / 1”。 值(1)由Goal.goal_id表示。

但是在这种情况下,我使用以下形式出现模板语法错误:

TemplateSyntaxError at /bashorunemmascrumy/movegoal/1
Empty variable tag on line 12
Request Method: GET
Request URL:    http://127.0.0.1:8000/bashorunemmascrumy/movegoal/1
Django Version: 3.0.2
Exception Type: TemplateSyntaxError
Exception Value:    
Empty variable tag on line 12
Exception Location: /home/bashorun/Documents/linuxjobber-internship/venv/lib/python3.6/site-packages/django/template/base.py in parse, line 444
Python Executable:  /home/bashorun/Documents/linuxjobber-internship/venv/bin/python3
Python Version: 3.6.8
Python Path:    
['/home/bashorun/Documents/linuxjobber-internship/myscrumy',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/home/bashorun/Documents/linuxjobber-internship/venv/lib/python3.6/site-packages']
Server time:    Thu, 6 Feb 2020 17:35:56 +0000

我如何按预期使用该网址?

0 个答案:

没有答案