2013-01-21 5 views
0

semble que cela devrait fonctionner ... mais .. ici est le views.pyest-ce les urls ou les vues?

from django.shortcuts import render_to_response 
from django.template import RequestContext 
from create_lesson.models import Lesson 
from django.contrib.auth.models import User 
from add_material.models import Materials 

def Use_Lesson(request, lesson): 
    user=request.user 
    lessons = Lesson.objects.get(slug=lesson) 
    lessons.attributes=Materials.objects.filter(lesson=lessons.pk) 
    context = {'user':user,'lesson':lessons,} 
    return render_to_response('use_lesson/use_lesson.html', context, context_instance=RequestContext(request)) 

urls.py ressemble à ce

from django.conf.urls.defaults import * 

urlpatterns= patterns('', 
    (r'^browse/', 'use_lesson.views.Browse'), 
    (r'^lesson/(?P<lesson>[a-zA-Z0-9-]+)', 'use_lesson.views.Use_Lesson'), 

ici est le message d'erreur de base demande Méthode: GET Demande d'URL: .../lesson/superfarts Django Version: 1.4.1 Type d'exception: DoesNotExist Exception: La requête de correspondance de cours n'existe pas.

et il dit que le problème est ici: leçons = Lesson.objects.get (slug = leçon)

quand je fais la même chose dans la même requête « manage.py shell python » i obtenir les résultats je cherche.

+0

Vérifier le shell que vous faites exactement la même requête, avec exactement la même valeur pour 'lesson'. – Rohan

+1

Plus précisément, assurez-vous que 'Lesson.objects.get (slug = 'superfarts')' dans le shell manage.py obtient le résultat attendu. – Caspar

Répondre

1

essayer de le changer en:

(r'^lesson/(?P<lesson>[a-zA-Z0-9-]+)/$', 'use_lesson.views.Use_Lesson') 
+0

celui-ci a travaillé merci! mais je ne comprends pas vraiment la différence? – rafirosenberg

+0

je regarde maintenant encore et semble que votre URL originale devrait fonctionner. pourriez-vous imprimer en vue 'leçon' var? – sneawo

0

A slugfield est le mieux représenté dans une expression rationnelle par \ W qui est égal à [a-zA-Z0-9_]

(r'^lesson/(?P<lesson>\W+)/$', 'use_lesson.views.Use_Lesson') 
+0

merci ... cela ressemble à cela devrait fonctionner, mais pour une raison quelconque, il n'a pas? – rafirosenberg