ViewDoesNotExist:错误

时间:2012-07-09 10:29:20

标签: python django view error-handling

我有以下代码,因为您可以看到视图中有一个C_account()函数,但我还没有

**Exception Type: ViewDoesNotExist at /create_account/

Exception Value: Could not import EPM.views.C_account. View does not exist in module EPM.views.**

任何想法可能是什么问题?

包含EPM/views.py函数定义的视图(C_account):

from django.shortcuts import render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext
from EPM.forms import *
from EPM.models import *
from datetime import date
from django.contrib.sessions.models import Session
from django.conf.urls.defaults import *

from django.forms.formsets import formset_factory

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'deducive.settings'

from django.core.management import setup_environ
from deducive import settings
import csv


def C_account(request):
 if request.method == 'POST':
    form = CreateAccountForm(request.POST)
    if form.is_valid():

    acc_act_date = form.cleaned_data['Account_Activation_Date']
    present_date = date.today()
    if acc_act_date <= present_date:
        stat = 'active'
    else:
        stat = 'inactive'

    acc_cat_id = Account_Categories_T.objects.get(cat_name = stat, category = 'status')


        sto =   GL_Account_T(account_number=form.cleaned_data['Account_Number'],
                account_name=form.cleaned_data['Account_Name'],
                                account_description=form.cleaned_data['Account_Description'],
                                parent_account_number=form.cleaned_data['Parent_Account_Number'],
                                account_manager=form.cleaned_data['Account_Manager'],
                                account_category_id = acc_cat_id,
                                account_activation_date=form.cleaned_data['Account_Activation_Date'],
                                )
        sto.save()

        return HttpResponseRedirect('/create_account/thanks/')

else:
    form = CreateAccountForm()
return render_to_response('CreateAccountForm.html', {'form': form}, context_instance=RequestContext(request))

def thanks(request):
    return render_to_response('Thanks.html')

和URLConf(EPM/urls.py),C_account视图正确连接到create_account/网址:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('EPM.views',
    (r'^create_account/$', 'C_account'),
    (r'^create_account/thanks/$', 'thanks'),)

2 个答案:

答案 0 :(得分:2)

很高兴听到你解决了这个问题。

轻微混淆ViewDoesNotExist异常可能是因为Django在阅读ImportError时遇到views.pyfrom EPM.forms import *,因为字段输入错误而导致异常你提到过);当前行为是吞下许多异常(例如ImportError)并将其重新提升为ViewDoesNotExist例外。

有一个四岁的Django bug讨论如何使这些错误消息更有帮助(主要是通过捕获更少的异常)。在平均时间内,您可以通过尝试例如

来追踪这些类型的问题
from EPM.views import *

在shell(./manage.py shell)中,它会显示原始异常。

答案 1 :(得分:0)

我终于破解了我的错误。 问题出在我的forms.py中,我在一个地方写了CharField作为Charfield。 但我仍然想知道为什么它指向我forms.py中的错误 我通过在shell中导入views.py来获得它。