0

URLで渡された引数に従ってフィルタリングしようとしているモデルがあり、フィルタリングされたオブジェクトをテンプレートを介して表示しますが、何が間違っているのかわかりません。

これが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 %} 

そして、ページ/ courses / CR1をロードすると(short_title = "CR1"のコースは、フィルタリングではなく、すべてのコースを表示するだけの別のテンプレートで正常にレンダリングされるため、間違いなく存在します)、「申し訳ありませんが、そのコースです。存在しません。」

誰かが私が間違っていることを見ることができますか?

4

1 に答える 1

3

この行で:

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

正確なテキスト「course_code」を含むコースタイトルをチェックしています。変数の値を使用することを意味しますcourse_code

current_course = Course.objects.filter(short_title=course_code)
于 2013-03-27T11:57:29.760 に答える