2016-04-11 11 views
0

フォームからデータを取得して処理する必要があります。フォームからのデータ。テンプレートが存在しません

私のフォーム

from django import forms 


class DomainForm(forms.Form): 
    url_text = forms.URLField(label='Site url', max_length=200) 

私のテンプレート

<form class='form-horizontal' action="" method="post"> 
     {% csrf_token %} 
     {{ form }} 
     <input type="submit" value="Submit" /> 
    </form> 

私の見解

def parsurl(request): 
    global form 

    if request.method == 'POST': 
     form = DomainForm(request.POST) 

     if form.is_valid(): 
      r = form.cleaned_data.get('url_text') 
      masall =parser_d(r) 
      for mas1 in masall: 
       try: 
        Events.objects.create(events_title=mas1[1], events_text = mas1[2],events_img = mas1[0], events_is_pars=1, events_seourl = "132") 
       except: 
        print ("lololo") 

    else: 
     form = DomainForm() 
    context = { 'form': form, } 
    return render_to_response(request, 'form.html', context) 

私のURL

url(r'^parser/', 'pages.views.parsurl'), 

私はmysite/parser/を訪問すれば、私はエラーを取得する:

Template-loader postmortem 

Django tried loading these templates, in this order: 

Using engine : 
django.template.loaders.filesystem.Loader: /home/ziberon/econom/ecosite/templates/<WSGIRequest: GET '/parser/'> (Source does not exist) 
django.template.loaders.app_directories.Loader: /home/ziberon/econom/ecenv/lib/python3.4/site-packages/django/contrib/admin/templates/<WSGIRequest: GET '/parser/'> (Source does not exist) 
django.template.loaders.app_directories.Loader: /home/ziberon/econom/ecenv/lib/python3.4/site-packages/django/contrib/auth/templates/<WSGIRequest: GET '/parser/'> (Source does not exist) 
+0

「グローバルフォーム」は悪い考えですが、削除する必要があります。あなたのビューは 'if'と' else'ブランチにフォームを設定するので、問題はありません。 – Alasdair

答えて

1

あなたは間違ってrender_to_responseを呼び出しているので、あなたがエラーを取得しています。

return render_to_response(request, 'form.html', context) 

の方法は推奨されなくなりました。代わりにrenderショートカットを使用することをお勧めします。

from django.shortcuts import render 

def parsurl(request): 
    ... 
    return render(request, 'form.html', context)