2009-07-09 4 views
0

Dans mes modèles de Django, j'ai quelques morceaux de code qui sont comme ceci:Pourquoi la balise "url" intégrée de Django provoque-t-elle une erreur lors de l'exécution de tests unitaires?

<a href="{% url root %}">Root</a> 

Ils fonctionnent correctement lors du rendu du modèle. Cependant, chaque fois que je lance mes tests unitaires en utilisant le cadre de tests unitaires de Django, je reçois l'erreur suivante:

NoReverseMatch: Reverse for 'mysite.root' with arguments '()' and keyword arguments '{}' not found.

La racine est nommé correctement dans urls.py (url(r'^$', 'index', name='root')) et, encore une fois, l'erreur ne se présente pas lors de la navigation le site - uniquement pendant les tests unitaires.

Si je change le code à ceci:

{% url root as root_path %} 
<a href="{{ root_path }}">Root</a> 

l'erreur va aussi loin. Quel est le problème avec le premier morceau de code?

Répondre

0

Évidemment, les tests échouaient parce que Django ne trouvait pas d'enregistrement Site dans la base de données. C'est peut-être parce que mon SITE_ID est réglé sur autre chose que 1; ceci a été supposé corrigé, comme mentionné dans ce document, mais cela ne semble pas être réellement corrigé.

Questions connexes