Python Django模板中url的NoReverseMatch

Python Django模板中url的NoReverseMatch,python,django,Python,Django,我得到了这个错误: NoReverseMatch at /workoutcal/add/2017/11/1/ Reverse for 'add_workout' not found. 'add_workout' is not a valid view function or pattern name. 由于此模板代码: <form action="{% url 'add_workout' date.year date.month date.day %}" method="post">

我得到了这个错误:

NoReverseMatch at /workoutcal/add/2017/11/1/
Reverse for 'add_workout' not found. 'add_workout' is not a valid view function or pattern name.
由于此模板代码:

<form action="{% url 'add_workout' date.year date.month date.day %}" method="post">

因为您使用名称空间定义URL:

app_name = 'workoutcal'
因此,您需要在url反向中包含名称空间:

<form action="{% url 'workoutcal:add_workout' date.year date.month date.day %}" method="post">


您是否为这些url使用了名称空间?是否可以发布整个url.py文件?我查看了名称空间,发现:“url模板标记使用当前解析视图的名称空间作为RequestContext中的当前应用程序。您可以通过在request.current_app属性上设置当前应用程序来覆盖此默认值。”. 由于我的应用程序中只有一个应用程序,我认为没有必要定义任何新的命名空间。完成后,请参阅编辑。另外,我应该补充一点,使用url标记呈现模板的视图与url
add\u-workout
指向的视图相同。也许这就是问题所在?是否可以反转呈现模板的视图的url(循环url引用?)?
class AddWorkoutView(View):
    def get(self, request, year=None, month=None, day=None):
        template_name = 'workoutcal/addworkout.html'
        template = loader.get_template(template_name)
        date = datetime(year=int(year), month=int(month), day=int(day))
        context = {
            'date':date,
            'current_name':request.user.username,
            'title':'Add workout',
            'range':range(4),
        }
        return HttpResponse(template.render(context, request))
app_name = 'workoutcal'
<form action="{% url 'workoutcal:add_workout' date.year date.month date.day %}" method="post">