2017-08-06 4 views
0

Ich habe keine Ahnung, warum ich einen Fehler habe, der sagt "Reverse for 'lscholarship' wurde nicht gefunden. 'Lscholarship' ist keine gültige View-Funktion oder ein gültiger Name." wenn ich versuche, http://127.0.0.1:8000/hrfinance/home/ zu laufen. In meinem views.py habe ich bereits ein Stipendium statt eines Stipendiums definiert und in meinem urls.py ein Views.Scholarship geschrieben.NoReverseMatch at/hrfinance/home/Django

base.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>{% block title %} Title {% endblock %}</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    {% block link %} 
    {% endblock %} 
</head> 

<body> 
{% block body %} 
{% endblock %} 
</body> 
</html> 

views.py

def scholarship(request, id=None): 
    query_results = [] 
    if request.POST.get('delete'): 
     Scholarship.objects.filter(id__in=request.POST.getlist('item')).delete() 
     return redirect('/hrfinance/lscholarship/') 

    elif request.POST.get('add'): 
     form = ScholarshipForm(request.POST) 
     if form.is_valid(): 
      scholarship = form.save(commit=False) 
      scholarship.save() 
      return redirect('/hrfinance/lscholarship/') 
    else: 
     form = ScholarshipForm() 
    id = request.GET.get('scholarship') 
    query_results = Scholarship.objects.all() 
    data = { 
     'query_results':query_results, 
     'form':form 
     } 
    return render(request, 'hrfinance/add_remove_scholarship.html', data) 

urls.py

urlpatterns = [ 
    url(r'^home/$', views.home, name='home'), 
    #timesheet to be filled up by students 
    url(r'^timesheet/$', views.timesheet, name='timesheet'), 
    #list of timesheets under 'View Timesheet' 
    url(r'^ltimesheet/$', views.ltimesheet, name='ltimesheet'), 
    #list of applications under 'View Application' 
    url(r'^lapplication/$', views.lapplication, name='lapplication'), 
    #list of scholarships under 'Add/Remove Scholarship' 
    url(r'^lscholarship/$', views.scholarship, name='lscholarship'), 
    url(r'^base/$', views.base, name='base'), 
] 

unten ist die Zurückverfolgungs:

Environment:

Request Method: GET Request URL: http://127.0.0.1:8000/hrfinance/home/

Django Version: 1.11.1 Python Version: 2.7.13 Installed Applications: ['hrfinance.apps.HRFinanceConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles'] 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.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']

Template error: In template D:\curtin\year3 SEM 2\XiMing_2Jul\myHDR\hrfinance\templates\hrfinance\base.html, error at line 0 Reverse for 'lscholarship' not found. 'lscholarship' is not a valid view function or pattern name. 1 : 2 : 3 : 4 : 5 : {% block title %} Title {% endblock %} 6 :

7 : {% block link %} 8 : {% endblock %} 9 :
10 :

Traceback:

File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner 41. response = get_response(request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "D:\curtin\year3 SEM 2\XiMing_2Jul\myHDR\hrfinance\views.py" in home 11. return render(request, 'hrfinance/home.html')

File "C:\Python27\lib\site-packages\django\shortcuts.py" in render 30. content = loader.render_to_string(template_name, context, request, using=using)

File "C:\Python27\lib\site-packages\django\template\loader.py" in render_to_string 68. return template.render(context, request)

File "C:\Python27\lib\site-packages\django\template\backends\django.py" in render 66. return self.template.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render 207. return self._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render 177. return compiled_parent._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render 72. result = block.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render 458. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)

File "C:\Python27\lib\site-packages\django\urls\base.py" in reverse 91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))

File "C:\Python27\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix 497. raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /hrfinance/home/ Exception Value: Reverse for 'lscholarship' not found. 'lscholarship' is not a valid view function or pattern name.

Projekt urls.py

from django.conf.urls import url 
from django.contrib import admin 
from django.conf.urls import include 
from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 

url(r'^hrfinance/', include('hrfinance.urls', namespace='hrfinance')),] 

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT) 
    urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) 
+0

Bitte posten Sie Ihre base.html auch –

+0

@ArpitSvt ich meine Frage aktualisiert base.html enthalten –

+0

Bitte senden Sie hrfinance/home.html‘auch –

Antwort

0

redirect() Methode wie folgt Versuchen in views,

return redirect('hrfinance:lscholarship') 

statt,

return redirect('/hrfinance/lscholarship/') 

vorausgesetzt, Ihr Projekt urls.py enthält,

url(r'^hrfinance/', include('hrfinance.urls', namespace='hrfinance')), 

EDIT

Änderung Ihrer URLPATTERN,

url(r'^lscholarship/(?P<id>\d+)/$', views.scholarship, name='lscholarship'), 
+0

nicht zu arbeiten und mein Projekt urls.py ist das gleiche wie wat du geschrieben hast –

+0

Bearbeite meine Antwort .. – zaidfazil

+0

immer noch nicht funktioniert und den gleichen Fehler bekommen –