2017-09-20 3 views
0

Je travaille sur un projet django et j'ai une page web html et de la page Web que je veux transmettre à un identifiant et à travers cet identifiant, mettez à jour un enregistrement. J'ai la configuration d'URL et la redirection d'URL de page de HTML. Je passe ce qui est nécessaire dans l'URL, mais je reçois une erreur de correspondance de modèle. J'ai tout essayé et pour une raison quelconque ça ne marche pas. Est-ce que quelqu'un sait ce qui se passe ou peut m'aider à comprendre ce qui cause cette erreur. J'Attachera toutes les informations ci-dessous:Django - url ne correspond pas à tout motif lorsqu'il est redirigé

Voici le lien url:

url(r'^(?P<source_id>[\w+][0-9]+)/default_source/$', views.setDefaultSource, name='default_source'), 

Voici le fichier html:

<p>{{account.user.username}}, {{ account.source_name }}, {{ account.source_id }}, 
{{ account.status }} 
<a href="{% url 'default_source' account.source_id %}">Make Default</a> 

Voici le views.py:

def setDefaultSource(request, source_id): 
    currentUser = loggedInUser(request) 
    currentSource = Dwolla.object.get(source_id = source_id) 

    update_source = currentSource 
    update_source.status = 2 
    update_source.save() 

    return redirect('home_page') 

Voici l'erreur que je reçois:

NoReverseMatch at /linked_accounts/ 
Reverse for 'default_source' with arguments '('https://api-sandbox.dwolla.com/funding-sources/3021030d-0175-41f1-8bce-4625b8eae0fc',)' not found. 1 pattern(s) tried: ['(?P<source_id>[\\w+][0-9]+)/default_source/$'] 

Répondre

0

Il semble que votre expression regex ne correspond pas à votre source_id:

[\w+][0-9]+ 

enter image description here

si 3021030d-0175-41f1-8bce-4625b8eae0fc est ce que votre source_id ressemble, essayez:

[\w+-]+ 

ou plus complexe expression regex.

+0

l'ID source est la suivante 'https: // api-sandbox.dwolla.com/financement-sources/3021030d-0175-41f1-8bce-4625b8eae0fc' @zhiyucao –

0

Juste vous changez modèle URL pour,

url(r'^(?P<source_id>[\w-]+)/default_source/$', views.setDefaultSource, name='default_source'), 
+0

j'ai donc le code suivant maintenant 'URL (r '^ (P [\ w + -]? +)/default_source/$', views.setDefaultSource, name = 'default_source'),' et je suis encore en train l'erreur suivante: 'NoReverseMatch at/linked_accounts/ inverse pour 'default_source' avec des arguments ('https://api-sandbox.dwolla.com/funding-sources/3021030d-0175-41f1-8bce-4625b8eae0fc ')' pas trouvé. 1 motif (s) a essayé: [ '(P [\\ w -] +?)/Default_source/$'] 'Je ne sais pas pourquoi @zaidfazil –

+0

Vous utilisez un espace de noms pour url_patterns app? Veuillez vérifier dans votre project_level 'urls.py' ... – zaidfazil

+0

Etes-vous sûr que' account.source_id' est un 'uuid', il semble que 'account.source_id' soit un uri. – zaidfazil