2013-07-28 103 views
1

也許這很容易,但我有麻煩。將模板中的值傳遞給Django中的視圖

我需要將template.html中的值傳遞給view.py我已經在google和django文檔中搜索這個問題,但是唯一建立的解決方案是使用:URL(GET)是否有另一個表單?

我有此在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類= 「中心」 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通過課程價值explicit_course in views.py

任何人都可以幫我嗎?

非常感謝。

+0

所以,如果我理解這個正確的,所有你想要做的就是通過在URL中的課程名稱的值,然後你想看看這起來並在你的模板中顯示結果? –

+0

首先,「{%for Course in Course%}」不起作用。接下來,您已經可以訪問視圖中的queryset對象。你需要通過一個URL傳遞'id'並在視圖中訪問它 – karthikr

+0

重複的:http://stackoverflow.com/questions/17635255/django-urls-py-regex/17635270#17635270 –

回答

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之後),然後您就可以正常使用它。

你不是真的「從模板傳遞價值觀」,你只是從網址中提取數據。

文檔可以在這裏找到,這是值得一讀:https://docs.djangoproject.com/en/1.5/topics/http/urls/#named-groups

相關問題