web-dev-qa-db-fra.com

Django - Inverser pour '' non trouvé. '' N'est pas une fonction de vue valide ou un nom de modèle

Je travaille sur mon projet pour un cours et je suis totalement bloqué pour le moment. Je crée un site Web pour vendre des produits via Paypal et les pages de retour/annulation Paypal ne sont pas rendues correctement. J'ai suivi les exemples de mes leçons et vérifié le code cent fois, mais il est évident qu'il me manque quelque chose.

Je reçois une erreur lorsque je vais aux produits, que je clique sur acheter maintenant, que je me connecte à Paypal, puis que j'annule l'achat ou que j'achète le produit et que je retourne à la page du marchand. Paypal_return.html et Paypal_cancel.html sont deux modèles enregistrés sous templates/Paypal /

Quelqu'un peut-il voir ce que je manque?

Ici vous pouvez voir le code complet https://github.com/IreneG5/spss_online

Traceback

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/Paypal-cancel/

Django Version: 1.11.4
Python Version: 2.7.12
Installed Applications:
['Django.contrib.admin',
 'Django.contrib.auth',
 'Django.contrib.contenttypes',
 'Django.contrib.sessions',
 'Django.contrib.messages',
 'Django.contrib.staticfiles',
 'Django_forms_bootstrap',
 'Paypal.standard.ipn',
 'home',
 'accounts',
 'Paypal_store',
 'products']
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 C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\templates\base.html, error at line 10
   Reverse for '' not found. '' is not a valid view function or pattern name.   1 : {% load staticfiles %}
   2 : <!DOCTYPE html>
   3 : <html lang="en">
   4 : <head>
   5 :     <meta charset="UTF-8">
   6 :     <title>Buy SPSS Online</title>
   7 :     <meta name="viewport" content="width=device-width, initial-scale=1.0">
   8 :     <meta name="description" content="">
   9 :     <meta name="author" content="">
   10 :     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/cerulean/bootstrap.min.css">
   11 :     <link rel="stylesheet" href="{% static 'css/style.css' %}">
   12 : 
   13 : 
   14 : </head>
   15 : <body>
   16 : <div class="container">
   17 :     <div class='container-fluid'>
   18 :         <nav id="menu" class="navbar navbar-inverse">
   19 :             <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
   20 :                 <span class="icon-bar"></span>


Traceback:

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\core\handlers\exception.py" in inner
  41.             response = get_response(request)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\core\handlers\base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\core\handlers\base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\irene\Documents\Full-Stack-Developer\Stream3\Project\spss_online\Paypal_store\views.py" in Paypal_cancel
  15.     return render(request, 'Paypal/paypal_cancel.html', args)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\shortcuts.py" in render
  30.     content = loader.render_to_string(template_name, context, request, using=using)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\loader.py" in render_to_string
  68.     return template.render(context, request)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\backends\Django.py" in render
  66.             return self.template.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render
  207.                     return self._render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in _render
  199.         return self.nodelist.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render
  990.                 bit = node.render_annotated(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render_annotated
  957.             return self.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\loader_tags.py" in render
  177.             return compiled_parent._render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in _render
  199.         return self.nodelist.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render
  990.                 bit = node.render_annotated(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render_annotated
  957.             return self.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\loader_tags.py" in render
  72.                 result = block.nodelist.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render
  990.                 bit = node.render_annotated(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\base.py" in render_annotated
  957.             return self.render(context)

File "C:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\template\defaulttags.py" in render
  458.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)

File "C:\Users\irene\virtualenv\spss_online_env\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:\Users\irene\virtualenv\spss_online_env\lib\site-packages\Django\urls\resolvers.py" in _reverse_with_prefix
  497.         raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /Paypal-cancel/
Exception Value: Reverse for '' not found. '' is not a valid view function or pattern name.
20
Ire

Lorsque vous utilisez la balise url, vous devez utiliser des guillemets pour les littéraux de chaîne, par exemple:

{% url 'products' %}

Pour le moment, product est traité comme une variable et est évalué à '' dans le message d'erreur.

35
Alasdair
  1. La syntaxe pour spécifier l'URL est {% url namespace:url_name %}. Alors, vérifiez si vous avez ajouté le app_name Dans urls.py.
  2. Dans mon cas, j'avais mal orthographié l'url_name. Le fichier urls.py avait le contenu suivant path('<int:question_id>/', views.detail, name='question_detail') tandis que le fichier index.html contenait l'entrée suivante <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>. Notez le nom incorrect.
8
Aditya Mishra

L’erreur commune que j’ai trouvée, c’est lorsque vous oubliez de définir votre URL dans yourapp/urls.py

0
user3719458

Correction de urlpatterns dans le fichier urls.py

Par exemple, mon nom d'application est "simulateur",

Mon modèle d'URL pour login et logout ressemble à

urlpatterns = [
    ...
    ...
    url(r'^login/$', simulator.views.login_view, name="login"),
    url(r'^logout/$', simulator.views.logout_view, name="logout"),
    ...
    ...

]
0
Dartion

Sur la ligne 10, il y a un espace entre s et t. Ce devrait être un mot: stylesheet.

0
Douglas T