因此,我正在和朋友一起使用Django 1.9在Django中创建一个Web应用程序。然而,最近我从我们的git repo中删除了一些小的改动,突然间我得到NoReverseMatch,无论我在哪里尝试进入我们的页面。它适用于我的朋友,我们正在使用相同版本的Django。
所做的更改是在forms.py和views.py中,在urls.py中没有触及任何内容,我收集了这个问题的最常见原因来自。
我们有两个urls.py文件,一个在我们的app目录中:
(imports and fluff omitted)
urlpatterns = [
url(r'^', views.index, name = 'index'),
url(r'^play', views.play, name='play'),
url(r'^create_user/$', views.create_user, name='create_user'),
]
和app dir上面的目录中的一个:
(imports and fluff omitted again)
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('antonymapp.urls')),
url(r'^accounts/login/$', login),
]
无论URL定义在何处,问题仍然存在。
这是我们的views.py文件,省略了导入:
def index(request):
return render(request, 'antonymapp/index.html', {})
def login(request):
return render(request, 'antonymapp/login.html', {})
def create_user(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["password1"]
new_user = User.objects.create_user(username=username, password=password)
return redirect('play')
else:
form = UserCreationForm()
return render(request, 'antonymapp/create_user.html', {'form': form})
@login_required
@csrf_protect
def play(request):
if request.method == 'POST':
form = SomeForm(request.POST)
print(form.is_valid())
if form.is_valid():
picked = form.cleaned_data.get('picked')
picked = int(picked[0])
player = request.user.userprofile
player.score = player.score + picked
player.save()
else:
form = SomeForm
return render(request, 'antonymapp/play.html', {'form':form })
大编辑与信息 堆栈跟踪:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.9
Python Version: 3.4.3
Installed Applications:
['antonyms',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'antonymapp']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template /home/lisa/Documents/Skola/Kex/AntonymApp/antonymapp/templates/antonymapp/index.html, error at line 0
Reverse for 'post_new' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 1 : {% extends 'antonymapp/base.html' %}
2 :
3 : {% block content %}
4 : <h1> Hej och välkommen till vår sida! </h1>
5 : <p>
6 : <a href="{% url 'django.contrib.auth.views.login' %}">Logga in</a>
7 : </p>
8 : <p>
9 : <a href="{% url 'create_user' %}" class="user-text">Skapa användare</a>
10 : </p>
Traceback:
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/defaulttags.py" in render
507. current_app=current_app)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/urlresolvers.py" in reverse
600. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
508. (lookup_view_s, args, kwargs, len(patterns), patterns))
During handling of the above exception (Reverse for 'antonyms.post_new' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []), another exception occurred:
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/antonymapp/views.py" in index
15. return render(request, 'antonymapp/index.html', {})
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/shortcuts.py" in render
67. template_name, context, request=request, using=using)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/loader.py" in render_to_string
97. return template.render(context, request)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/backends/django.py" in render
95. return self.template.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render
206. return self._render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render
988. bit = node.render_annotated(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render_annotated
955. return self.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render
988. bit = node.render_annotated(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render_annotated
955. return self.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render
988. bit = node.render_annotated(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/base.py" in render_annotated
955. return self.render(context)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/defaulttags.py" in render
513. six.reraise(*exc_info)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/utils/six.py" in reraise
686. raise value
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/template/defaulttags.py" in render
499. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/urlresolvers.py" in reverse
600. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/home/lisa/Documents/Skola/Kex/AntonymApp/myvenv/lib/python3.4/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
508. (lookup_view_s, args, kwargs, len(patterns), patterns))
Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'post_new' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
来自django导入表单的forms.py
class SomeForm(forms.Form):
CHOICES = ((1,'1'),
(2,'2'),
(3,'3'),
(4,'4'),
(5,'5'),)
picked = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect())
我和我的朋友坐在不同的计算机上,我们都修复了一个错误(以同样的方式)他将更改推送到github。然后我删除了我所做的更改并删除了他的更改(我们还没有学习如何在github中处理分支)。
所以我不确定我是否能找到差异,因为在删除我的更改并删除更改之前,我从未提交过我的文件。
编辑
我最终做的是删除我的本地版本的项目,然后从git克隆。它现在有效,但我不知道为什么和出了什么问题。
只是为了添加到语料库,我也发生了这种情况。这是一个非常基本的项目,没有任何有趣的事情发生。
所有我改变的是安装psycopg2
和一个正在工作的项目停止工作与上述相同的错误。
虽然我没有删除我卸载的项目,而是在环境中重新安装了django,但突然间网址再次正常运行。
Ubuntu 18.04
Django 2.1.1
是的,奇怪的错误。