我正在尝试同步两个Django项目,并发现自己出现以下错误:
反向找不到参数'()'和关键字参数'{}'的'file-add'。尝试了0种模式:[]
现在模板第15行似乎存在问题:
5
6
7 {% block content %}
8
9 {% if form.non_field_errors %}
10 <div class="panel">
11 {{ form.non_field_errors }}
12 </div>
13 {% endif %}
14
15 <form action="{% url 'file-add' %}" method="post" enctype="multipart/form-data">
16 <fieldset>
17 <legend>Add CV</legend>
18
19 <div class="large-12 columns">
20 <div class="row" id="file_container">
21 {% if form.f.errors %}
22 <input placeholder="First name" name="f" type="file" id="file" class="error" />
23 {% else %}
24 <label for="f" name="CV" />
25 <input name="f" type="file" id="file" />
由于我不记得以任何方式更改此模板,并且所有文件应该与我的其他服务器上的文件相同,是否有任何小问题,我会丢失?
> <form action="{% url 'file-add' %}" method="post" enctype="multipart/form-data">
修改
这似乎与我的网址文件有关。我有一个主网址文件,它使用网址“/ jobs /”将任何内容转发到作业网址文件。
url(r'^jobs/', include('jobs.urls', namespace="jobs")),
url(r'^admin/', include(admin.site.urls)),
url(r'^admin_tools/', include('admin_tools.urls')),
作业网址文件然后指向相关的作业页面。
url(r'^new', views.importDemoData, name='importDemoData'),
url(r'^add', FileAddView.as_view(), name='file-add'),
url(r'^files/list', FileListView.as_view(), name='list'),
# This view lists uploaded files
url(r'^success', FileListView.as_view(), name='home'),
url(r'^(?P<unique_id>\w+)/$', views.application, name='application'),
如果我将“file-add”行移动到主urls文件中,它似乎可以工作......
答案 0 :(得分:1)
我认为你应该添加URL名称的名称空间前面
答案 1 :(得分:0)
如果有人可以向我解释那会很棒......
我在主网址文件中从此行中删除了命名空间:
url(r'^jobs/', include('jobs.urls', namespace="jobs")),
将其更改为:
url(r'^jobs/', include('jobs.urls')),
它有效!这有点奇怪,因为它似乎在我的其他服务器上正常工作..
答案 2 :(得分:0)
正如他们在文档中所说:url-namespaces-and-included-urlconfs
包含的URLconf的URL名称空间可以用两种方式指定。
首先,在构造URL模式时,可以将应用程序和实例名称空间作为include()的参数提供。例如,:
url(r&#39; ^民意调查/&#39;,包含(&#39; polls.urls&#39;,名称空间=&#39; author-polls&#39;,app_name =&# 39;轮询&#39)),
这将包括polls.urls中定义的URL到应用程序命名空间&#39; polls&#39;,以及实例命名空间&#39; author-polls&#39;。
其次,您可以包含一个包含嵌入式命名空间数据的对象。如果包含()url()实例列表,则该对象中包含的URL将添加到全局命名空间。但是,您还可以包含()包含以下内容的3元组:
(<list of url() instances>, <application namespace>, <instance namespace>)
答案 3 :(得分:0)
您忘记在网址名称
之前添加命名空间反向&#34;工作/添加&#34;将{%url&#39; jobs:file-add&#39; %}这是{%url&#39;命名空间:名称&#39;%}。
当您删除名称空间时,它会起作用,因为&#39; jobs / add&#39;网址将与{%url&#39; file-add&#39; %}