2016-04-23 4 views
0

Ich möchte das Ergebnis einer Datenbankabfrage in der URL gesendet werden. Das Problem ist, dass ich eine URL nicht finden kann, die dem Ergebnis entspricht.senden Liste (UNICODE) in URL Django

Ich machte eine Funktion, die die Zeichen() im Ergebnis löscht. Aber im Moment des Sendens bekomme ich diesen Fehler.

Reverse für 'deleteProject' mit Argumenten '(u'Juegos',) 'und Schlüsselwortargumente' {} 'nicht gefunden. 1 Muster (n) versucht: [ 'Administration/deleteProject/- $ (P [\ d] +?)']

views.py

def index(request): 
    arrayBases = getDatabases(request) 
    return render(request, 'index.html', { 
     'arrayBases': arrayBases, 
    }) 

def getDatabases(request): 
    cursor= connection.cursor() 
    cursor.execute("SELECT * FROM Administration_proyecto") 
    bases = cursor.fetchall() 
    arrayBases = [] 
    for i in bases: 
     for j in i: 
      arrayBases.append(j) 
    return arrayBases 

def deleteProject(request, base): 
    print request 
    return HttpResponseRedirect(reverse('index')) 

index.html

<table> 

    <tr> 
    <th>Nombre del proyecto</th> 
    <th>Acción</th> 
</tr> 

{% if arrayBases %} 
    {% for base in arrayBases %} 
    <tr> 
    <td id="{{ base }}"> {{ base }} </td> 
    <td> 
     <a href="{% url 'deleteProject' base %}"> 
     <img height="15px" src="{% static "icons/delete.svg" %}"> 
     </a> 
    </td> 

    </tr> 
    {% endfor %} 
{% endif %} 

</table> 

urls.py

urlpatterns = [ 
    url(r'^index/$', views.index, name='index'), 
    url(r'^deleteProject/(?P<base>[-\d]+)$', views.deleteProject, name="deleteProject"), 
] 

Ich habe versucht, die d für aw in der URL zu ändern, aber es funktioniert nicht

+0

Basierend auf Ihrem Code scheint dies ein Problem mit den Daten in der Tabelle administration_proyecto zu sein. Kannst du bitte ein paar Zeilen dieses Tisches posten? – 2ps

+0

Dies sind die Zeilen: (u'Juegos ',)' (u'PruebaTemp ',)' –

+0

, die nicht richtig aussieht. Verfügen Sie über ein django-Modell für administration_proyecto oder handelt es sich um eine Tabelle, auf die Sie über Raw SQL zugreifen müssen? – 2ps

Antwort

0

Sie können Ihre URL Endpunkt regulären Ausdruck ändern:

^deleteProject/(\w+)/?$ 

wo (\w+) ist eine nicht benannte Erfassung Gruppe, die mit einem oder mehreren alphanumerischen Zeichen übereinstimmt.