2016-11-01 2 views
1

ModelForm을 장고 앱의 홈 페이지에 표시하는 템플릿을 추가하려고합니다. 정적이 아니기 때문에 홈 페이지의 home이라는 프로젝트에 별도의 앱을 만들었지 만 현재 사용중인 템플릿은 현재 내 프로젝트에서 사용하는 기본 템플릿 디렉토리에 있습니다.Django : TemplateDoesNotExist at/home/

내 서버를 실행하고/홈으로 이동하려고, 나는 다음과 같은 오류가 발생합니다 :

TemplateDoesNotExist at /home/ 
{'form': <ActionCodeForm bound=False, valid=Unknown, fields=(action_code)>} 
Request Method: GET 
Request URL: http://127.0.0.1:8300/home/ 
Django Version: 1.9.7 
Exception Type: TemplateDoesNotExist 
Exception Value:  
{'form': <ActionCodeForm bound=False, valid=Unknown, fields=(action_code)>} 

어떻게이 오류를 수정합니까? 나는 TemplateDoesNotExist 오류에 대한 다른 답변을보고 시도했는데 'DIRS' 설정과 관련이 있다는 것을 알았지 만 내 설정이 제대로되어있는 것 같아서 오류의 원인을 모르겠습니다. 여기

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', 
      ], 
     }, 
    }, 
] 

템플릿 ( action_code_form.html)입니다 : 여기

settings.py의 템플릿 섹션

from home.forms import ActionCodeForm 

def action_code_form(request): 
    form = ActionCodeForm() 
    if request.method == 'POST': 
     form = ActionCodeForm(request.POST) 
     if form.is_valid(): 
      action_code = form.cleaned_data['action_code'] 
      form.save() 
    return render('action_code_form.html', {'form': form}) 

집 : 여기

<form method="post" action=""> 
{% csrf_token %} 
<table> 
{{ form }} 
</table> 
<input type="submit" value="Submit"/> 
</form> 

홈/views.py입니다 /models.py :

,
class ActionCode(models.Model): 
    action_code = models.CharField(blank=False, max_length=10, 
            verbose_name="Action Code") 

홈/forms.py :

from home.models import ActionCode 

class ActionCodeForm(ModelForm): 
    class Meta: 
     model = ActionCode 
     fields = ('action_code',) 

답변

3

당신은 render 바로 가기를 잘못 사용하고 있습니다. 첫 번째 인수는 request이어야합니다.

return render(request, 'action_code_form.html', {'form': form}) 
관련 문제