2013-03-27 25 views
0

我有一個模型,我試圖根據在URL中傳遞的參數進行過濾,然後通過模板顯示過濾的對象,但我沒有知道我做錯了什麼。django - 無法過濾對象並轉移到模板

這裏的urls.py:

url(r'^courses/(?P<course_code>\w+)/$', views.course, name="course"), 

這裏的觀點:

from website.models import Course 

def course(request, course_code): 
    current_course = Course.objects.filter(short_title='course_code') 
    template = loader.get_template('website/course.html') 
    context = Context({ 
     'current_course': current_course, 
    }) 
    return HttpResponse(template.render(context)) 

這裏的模型:

class Course(models.Model): 
    title = models.CharField(max_length=200) 
    short_title = models.CharField(max_length=5) 
    course_type = models.CharField(max_length=100) 
    start_date = models.DateTimeField() 
    end_date = models.DateTimeField() 
    fee = models.IntegerField() 
    places = models.IntegerField() 
    venue = models.CharField(max_length=200) 
    description = models.TextField() 
    short_description = models.TextField() 
    age_low = models.IntegerField() 
    age_high = models.IntegerField() 

而這裏的模板:

{% if current_course %} 

    {% for course in current_course %} 

     {{ current_course.title }} 

    {% endfor %} 

{% else %} 
    <p>Sorry, that course doesn't exist.</p> 
{% endif %} 

當我加載頁面/課程/ CR1(該課程與short_title =「CR1」肯定存在,因爲它在另一個模板,我不過濾,但只顯示所有課程罰款),它給了我「對不起,那當然不存在。「

任何人都可以看到我做錯了什麼?

回答

3

在這一行:

current_course = Course.objects.filter(short_title='course_code') 

你檢查與確切的文本 'course_code' 課程名稱。你的意思是使用變量的值course_code

current_course = Course.objects.filter(short_title=course_code) 
+0

太棒了 - 謝謝,現在工作正常。 – babbaggeii 2013-03-27 12:00:48