2017-05-11 30 views
0

我有一個小問題,我不知道爲什麼它不會發生。Python - Django。在模板中使用後,DEF功能從視圖中不顯示

我想在我的模板中使用定義在視圖中的定義在for循環中。 如果我把它就像這樣(不加載從視圖功能),它工作正常:

{% for i in "1234567" %} 
    <option value={{i}}> {{i}}</option> 
{% endfor %} 

,但如果我嘗試加載視圖定義我的功能在這兩種不同的方式:

def skuska(request): 
    template = loader.get_template('bc_python\templates\event_list.html') 
    questions = ['name', 'quest', 'favorite color'] 
    context = { 
     'items':questions 
    } 
    return HttpResponse(template.render(context, request)) 

OR:

def skuska_2(request): 
    questions = ['name', 'quest', 'favorite color'] 
    return render_to_response('event_list.html',{ 'items_n': questions }) 

,然後我試圖調用它爲一個週期,我的模板:

{% for post in items %} 
    <p>{{ post }}</p> 
{% endfor %} 

與第二:

{% for palo in items_n %} 
    <p>{{palo}}</p> 
{% endfor %} 

它不沒有做任何事情。沒有錯誤狀態,但在另一側沒有結果在屏幕上。 我的模板文件可以在這裏查看event_list.html

請你解釋一下如何解決這個「問題」。我被困在這個地方已經有好幾天了,無法在這裏或任何其他論壇找到合適的解決方案。如果您需要更多信息,請告訴我。

非常感謝!

+0

嘗試'從django.template導入上下文''context = Context({'items':questions})'和'return HttpResponse(template.render(context))'在您的視圖中 – doru

+0

我不是確定你爲什麼將這個變量稱爲「DEF函數」。它不是一個函數,它不是由「DEF」定義的;它是你函數中的一個變量。 –

+0

@doru無法正常工作: - /。它沒有顯示任何錯誤信息,但是當我加載頁面event_list.html時仍然沒有顯示「questions」數組的內容。其他.py文件可能有問題嗎? –

回答

0

views.py

from django.shortcuts import render 

    def skuska(request): 
     questions = ['name', 'quest', 'favorite color'] 
     return render(
      request, 
      'event_list.html', 
      {'items': questions} 
     ) 

urls.py

# -*- coding: utf-8 -*- 
from django.conf.urls import url 
from views import skuska 

urlpatterns = [ 
    url(r'^skuska/$', skuska, name='skuska'), 
] 

模板:

{% for post in items %} 
    <p>{{ post }}</p> 
{% endfor %} 

導航到你的網站/ skuska

也嘗試清除瀏覽器緩存或重新加載頁面Ctrl + F5

+0

我試過了,但並沒有解決我的問題。當我加載我的網頁時仍然沒有顯示。任何其他我可以添加的東西? –

+0

我更新了我的答案,包括urls.py文件。我在你的模板中看到你擴展了base.html,所以它是登錄註冊模板的一部分?所以也許這個問題與此有關。發佈你的urls.py視圖與特定網址相關 – Andrea

+0

好吧,我設法弄清楚了。問題在於文件夾的結構。這是錯誤的,因爲我無法使用視圖中的變量。 –