Rayane Bakari
Rayane Bakari

Reputation: 13

NoReverseMatch at /Raccourcisseur/

Reverse for 'redirection' with arguments '('',)' not found. 1 pattern(s) tried['Raccourcisseur/Lien/(?P[^/]+)/$'] [About errors][1] #urls.py#

from django.urls import path
from . import views
urlpatterns = [
  path('', views.liste,name='liste'),
  path('nouveau/',views.afficher,name='afficher'),
  path('Lien/<str:code>/',views.redirection,name='redirection'),
   ]

#urls.py(global)#

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
  path('admin/', admin.site.urls),
  path('Raccourcisseur/',include('mini_url.urls')),
 ]

#views.py#

from django.shortcuts import render,redirect,get_object_or_404
from .models import MiniURL
from .forms import MiniURLForm

def afficher(request):
   if request.method == "POST":
       form = MiniURLForm(request.POST)
       if form.is_valid():
            form.save()
            return redirect(liste)
   else:
      form = MiniURLForm()
   return render(request,'mini_url/index.html',{'form':form})

def liste(request): minis = MiniURL.objects.order_by('-acces') return render(request, 'mini_url/liste.html', locals())

def redirection(request,code): """ Redirection vers l'URL enregistrée """ mini = get_object_or_404(MiniURL, code=code) mini.acces += 1 mini.save() return redirect(mini.url, permanent=True)

#index.html#

{% extends 'mini_url/base.html' %}
{% block title %}
    RaccourcisseurUrl
{% endblock%}

{% block body %}
<h1>Raccourcir une URL </h1>
        <form method="post" action="{% url 'afficher' %}">
            {% csrf_token %}
            {{form.as_p}}
            <input type="submit"/>
        </form>
{% endblock %}

#liste.html#

{% extends 'mini_url/base.html' %}
{% block title %}
    Page RaccourcisseurUrl
{% endblock%}

{% block body %}
    <h1>Le raccourcisseur d'URL spécial </h1>
    <p></p><a href="{% url 'afficher' %}">Raccourcir une url </a></p>
    <p>Liste des URLs raccourcies : </p>
    <ul>
        {% for mini in minis %}
        <li>{{ mini.url }} via <a href="http://{{ request.get_host }}{% url 'redirection' mini.code %}">
            {{ request.get_host } {% url 'redirection' mini.code %} </a>
            {% if mini.pseudo %}
                par {{ mini.pseudo }}
            {% endif %} ({{mini.acces }} accès)
        </li>
        {% empty %}
        <li> Il n'y en pas actuellement </li>
        {% endfor %}
    </ul>
{% endblock %}

Upvotes: 0

Views: 103

Answers (1)

Razenstein
Razenstein

Reputation: 3717

In your list.html most certainly in {% url 'redirection' mini.code %} mini.code has no value.

Upvotes: 0

Related Questions