2017-02-19 1 views
-1

클래스 기반 뷰를 사용하고 장고 문서를 살펴보고 아무런 오류 메시지가 표시되지 않지만 빈 템플릿이 필요합니다. 나는 그것이 분류되지 않은 기반의 견해와 함께 일하도록했다. 템플릿을 렌더링 할 수 있도록 코드를 다시 포맷하려면 어떻게해야합니까? 템플리트는 제목, 일부 표제, 탐색 메뉴, 다른 언어로 지시를 선택하기위한 플래그, 다음에 플래그, policy 이름 char 필드 및 선택란 제어를 표시하는 양식이 오는 형식으로 구성됩니다. 나는 처음보기 = {'key': 'value'}보기 양식에서 잘못 생각하지만 그것을 대체 할 무엇을 모르겠다. 미리 감사드립니다.django 클래스 페이지 뷰 렌더링 템플릿 코드가 없음

forms.py 

from django import forms 
from policytracker.models import Flag, Label_Links 

class PolicyStartForm(forms.Form): 
    flags = Flag.objects.all() 
    policy = Label_Links.objects.all().filter(iso_language='en')[0] 

    frm_policy1_name=[] 

    for flag in flags: 
     frm_policy1_name.append(forms.CharField(max_length=40))  

    policy_dict = { 'new_policy_link' :policy.nav_section_new_policy_link, 
        'new_policy_label' :policy.nav_section_new_policy_label, 
        'graphs_link':policy.nav_section_graphs_link, 
       'graphs_label' :policy.nav_section_graphs_label, 
       'account_link' :policy.nav_section_account_link, 
       'account_label' :policy.nav_section_account_label, 
       'policy_list_link':policy.nav_section_list_policies_link, 
       'policy_list_label':policy.nav_section_list_policies_label, 
       'login_link'  :policy.nav_section_login_link, 
       'login_label' :policy.nav_section_login_label, 
       'new_policy1_heading' :policy.new_policy1_heading, 
       'new_policy1_title_label':policy.new_policy1_title_label, 
    'policy_needs_translation_label':policy.new_policy1_needs_trans_label, 
      'policy1_submit_label': policy.new_policy1_submit_button_label, 
       'policy1_tip_msg' :policy.new_policy1_tip_msg, 
       't_logged_in'  :True, 
       'frm_policy_name' :frm_policy1_name, 
       't_flags'   :flags } 
</code> 


<code> 
views.py 

# coding=utf-8 
from django.shortcuts import render 
from django.http import HttpResponseRedirect 
from policytracker.forms import LoginForm, PolicyStartForm 
from policytracker.models import Flag, Label_Links 
from django.views import View 

class PolicyStartView(View): 
    template_name = 'policystart.html' 
    initial = {'key': 'value'} 
    form_class = PolicyStartForm 

    def get(self, request, *args, **kwargs): 
     form = self.form_class(initial=self.initial) 
     return render(request, self.template_name, {'form': form}) 
</code> 

<code> 
policystart.html 

{% extends "policy-base.html" %} 

{% block navsection %} 
<div class="container top"> 
    <div class="row"> 
     <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
      <h1 class="text-center">{{ new_policy1_heading }}</h1> 
     </div> 
    </div> 
    {% if t_policy_details %} 
    <div class="row"> 
     <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"> 
      <h4 class="text-nowrap text-left" id="week_start">2017-02-11</h4></div> 
     <div class="col-md-4 col-xs-4"> 
      <h4 class="text-center" id="week_number">Week 1</h4></div> 
     <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"> 
      <h4 class="text-nowrap text-right" id="week_end">2016-09-18</h4></div> 
    </div> 
    {% endif %} 
    <div class="row"> 
     <div class="col-md-12"> 
      <nav class="navbar navbar-inverse"> 
       <div class="container-fluid"> 
        <div class="navbar-header"><a class="navbar-brand hidden navbar-link" href="#"> Policies</a> 
         <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> 
        </div> 
        <div class="collapse navbar-collapse" id="navcol-1"> 
         <ul class="nav navbar-nav navbar-right"> 
          <li class="hidden" role="presentation"><a href="{{ new_policy_link }}">{{ new_policy_label }}</a></li> 
          <li {% if not t_logged_in %} class="hidden" {% endif %} role="presentation"><a href="{{ graphs_link }}">{{ graphs_label }}</a></li> 
          <li {% if not t_logged_in %} class="hidden" {% endif %} role="presentation"><a href="{{ account_link }}">{{ account_label }}</a></li> 
          <li role="presentation"><a href="{{ policy_list_link }}">{{ policy_list_label }}</a></li> 
          {% if not t_logged_in %} <li role="presentation"><a href="{{ login_link }}">{{ login_label }}</a></li> {% endif %} 
         </ul> 
        </div> 
       </div> 
      </nav> 
     </div> 
    </div> 
    {% include "pol-new1-lang.html" %}  
</div> 

<div class="container middle-container"> 
    <div class="row"> 
     <div class="col-lg-1 col-md-1 col-sm-1 col-xs-3"> 
      <p> </p> 
     </div> 
     <div class="col-lg-6 col-md-6 col-sm-6 col-xs-8"> 
      <h4>{{ new_policy1_title_label }}</h4> 
     </div> 
     <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1"> 
      <h4 class="text-center">{{ policy_needs_translation_label }}</h4> 
     </div> 
    </div> 

    <form method="POST"> 
     {% csrf_token %} 
     {% load static %} 

     {% for f in t_flags %} 
     <div class="row flag"> 
      <div class="col-lg-1 col-md-1 col-sm-1 col-xs-2"><img src="{% static f.flag_image_filename %}"></div> 
      <div class="col-lg-6 col-md-6 col-sm-6 col-xs-9"> 
       <input class="form-control" type="text" name="policytitle"> 
      </div> 
      <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1"> 
       <input class="form-control" type="checkbox" name="needstranslation"> 
      </div> 
     </div> 
     {% endfor %} 

     <div class="row enter"> 
      <div class="col-lg-1 col-md-1 col-sm-1 col-xs-3"> 
       <p> </p> 
      </div> 
      <div class="col-lg-9 col-md-9 col-sm-9 col-xs-8"> 
       <button class="btn btn-default" type="submit">{{ policy1_submit_label }}</button> 
      </div> 
     </div> 
    </form> 

    <div class="row enter"> 
     <div class="col-lg-1 col-md-1 col-sm-1 col-xs-3"> 
      <p> </p> 
     </div> 
     <div class="col-lg-9 col-md-9 col-sm-9 col-xs-8"> 
      <p>{{ policy1_tip_msg }}</p> 
     </div> 
    </div> 
</div> 
{% endblock %} 

</code> 

답변

0

템플릿에서 많은 양의 변수를 사용하고 있지만 실제로 어떤 변수도 컨텍스트로 보내지는 않습니다. 보기가 전달하는 유일한 것은 form입니다. new_policy1_heading, policy_needs_translation_labelt_flags과 같은 것을 사용하려면보기에 정의한 다음 템플릿에서 템플릿으로 보내야합니다.

실제로 양식과보기 작업을 완전히 오해 한 것으로 보입니다. 현재 양식 안에 넣은 모든 코드는 실제로보기에 속하므로 policy_dict을 템플릿 컨텍스트로 사용해야합니다. 그것은 당신이 전혀 폼 클래스를 필요로하지 않는 것처럼 보입니다.

심지어 거기에서도 필요한 것보다 훨씬 많은 작업을 수행하고 있습니다. 정책 개체의 모든 특정 필드를 개별적으로 보낼 필요는 없습니다. policy을 보낸 다음 템플릿에서 {{ policy.policy_needs_translation_label }} 등을 수행 할 수 있습니다.

+0

나는 그것을 얻었습니다. 감사. –

관련 문제