我有以下代码,因为您可以看到视图中有一个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'),)
答案 0 :(得分:2)
很高兴听到你解决了这个问题。
轻微混淆ViewDoesNotExist
异常可能是因为Django在阅读ImportError
时遇到views.py
(from 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
来获得它。