1

たぶんこれは簡単ですが、私は問題を抱えています。

template.html の値を view.py に渡す必要があります。Google と django のドキュメントでこの質問を既に検索していますが、確立された唯一の解決策は次を使用することでした: URL (GET) is there another form?

私はこれをcourse_main.htmlに持っています:

{% for Course in Course %}
                <div id='courseContainer'>
                            <h4 class="center"> {{ Course.name }} </h4>
                            <a href="course/{{ Course.name }}"><img class="center" src="{{ Course.image.url }}"/></a>
                            <p class="center"> {{ Course.date }} </p>
                            <p> {{ Course.description }} </p>
                <!--End courseContainer -->
                </div>
{% endfor %}

したがって、ユーザーが <'img class="center" src="{{ Course.image.url }}"/> を押すと、{{ Course.name }} の変数にリダイレクトされます。

これは、urls.py の explicit_course によって処理されます。

urlpatterns = patterns('',
#Courses
(r'^course/[a-z].*$',explicit_course),

)

ここに explicit_course views.py があります:

def explicit_course(request):
profesor = Professor.objects.get(id=1)
courseExplicit = Course.objects.get(name="django-python")
variables = RequestContext(request,{
    'CourseExplicit':courseExplicit,
    'Profesor':profesor
})
return  render_to_response('course_explicit.html',variables)

ここで私はこのようなことをしたい:

courseExplicit = Course.objects.get(name="Course.name")

しかし、コースの値をcourse_main.htmlからviews.pyのexplicit_courseに渡す方法がわかりません

誰でも私を助けることができますか?

どうもありがとう。

4

1 に答える 1

1

urls.py名前付き正規表現を使用するように変更する必要があります。

urlpatterns = patterns('',
#Courses
(r'^course/(?P<course_name>[a-z]+)$',explicit_course),
)

そして、explicit_courseビューを次のように変更します。

def explicit_course(request, course_name):
    profesor = Professor.objects.get(id=1)
    courseExplicit = Course.objects.get(name=course_name)
    # etc...

内の名前付き正規表現一致は、urls.pyその内容を変数としてビューに渡し ( の後request)、通常どおり使用できます。

あなたは本当に「テンプレートからビューに値を渡す」のではなく、URL からデータを引き出しているだけです。

ドキュメントはここにあります。一読の価値があります: https://docs.djangoproject.com/en/1.5/topics/http/urls/#named-groups

于 2013-07-28T17:11:45.723 に答える