2016-11-27 5 views
0

フォームは機能します。入力がルールに表示されます。テンプレートは空白のページを表示します。助けて! settings.pyからフォームデータを同じページにレンダリングする

views.py

class StandingsView(FormView): 
    form_class = SelectTeam 
    template_name = 'teamsports/standings.html' 
    model = Teams 
    success_url = None 

    def form_valid(self, form): 
     form=SelectTeam 
     data = self.request.GET.get('team_name') 
     team = Teams.objects.filter(team_name__icontains=data).values() 
     return render(self.request, 'teamsports/standings.html', {'team': team}) 

template.html

{% extends 'teamsports/base.html' %} 

    {% block content %} 
    <h1>Pick your team, chump</h1> 

<form form_name = SelectTeam action="" method="GET"> 
    {{ form }} 
    <input type="submit" value="Submit" /> 
    {{ form.errors }} 
</form>  

<h1> {{ team }} </h1> 
    {% for team in Teams %} 
     <h1>{{ team.team_name }}</h1> 
    {% endfor %} 
{% endblock %} 

UPDATE - 私はすべての変数を渡すことはありませんが私のベースとホームテンプレートを展開します。

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [ 
     '/home/mrsaltz/thepub/teamsports/templates/teamsports', 
     ], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
        ], 
    }, 
}, 
] 
+0

私は自分の環境で自分の状況を反復しようとしています。私は私のテンプレートにフォームとモデルがあることを意味します。テンプレートの名前付けに何か問題がありますか? –

+0

ありがとう! Templateはbase.htmlと同じディレクトリにあります。それは私のURLですか? –

答えて

0

私の環境であなたの状況を反復しようとすると、すべてが機能します。私は私のテンプレートにフォームとモデルがあることを意味します。あなたのテンプレートの命名に何か問題があるかもしれません。

あなたはすでに{'team:team'}という辞書を表示しています。だからあなたのビューは次のようになります必要があります。

url(r'^standings/$', views.StandingsView.as_view()), 

あなたのテンプレートのスレッドがそのように見えるはずです。

TEMPLATES = [ 
    {                         
     'BACKEND': 'django.template.backends.django.DjangoTemplates',         
     'DIRS': [ 
         os.path.join(BASE_DIR, 'templates'),            
       ], 
     'APP_DIRS': True, 
     'OPTIONS': {                      
      'context_processors': [                  
       'django.template.context_processors.debug',            
       'django.template.context_processors.request',           
       'django.contrib.auth.context_processors.auth',           
       'django.contrib.messages.context_processors.messages',         
      ],                       
     }, 
    },   
]  

そして、それをあなたがtemplateフォルダを持っている必要があり、プロジェクトのルートを。

<body> 
    {% block main %}{% endblock %} 
</body> 

そして、テンプレートフォルダにフォルダを作成し、私はそのteamsportsをunderstanとして、あなたのケースでは、あなたのアプリと同じように呼び出して、その後、あなたのstandings.htmlファイルがすべきルックス:templateフォルダで あなたはこのようになりますbase.htmlファイルを持っている必要がありますこのような:

{% extends 'base.html' %} 
{% block main %} 
    <h1>Pick your team, chump</h1> 

<form form_name = SelectTeam action="" method="GET"> 
    {{ form }} 
    <input type="submit" value="Submit" /> 
    {{ form.errors }} 
</form>  

<h1> {{ team }} </h1> 
    {% for team in Teams %} 
     <h1>{{ team.team_name }}</h1> 
    {% endfor %} 
{% endblock %} 

ご注意あなたは{% block main %}{% endblock %}base.html内の同じタグを持っている場合standings.htmlでなければならないこと。

+0

URLを更新しましたが、それでも同じ問題が発生しました。私はフォームを取得し、私は提出することができます、私は私のブラウザでデータを参照してください、他の何もレンダリングされません。 –

+0

問題のあるテンプレートは1つだけですか?それが唯一のテンプレートであれば、設定ファイル –

+0

に 'TEMPLATES'スレッドが表示されていて、ありがとうございます(問題は解決しません) –

関連する問題