模块中不存在视图 - 当它 [英] View does not exist in module - when it does

查看:102
本文介绍了模块中不存在视图 - 当它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Kubuntu 12.04上使用Python 2.7来运行Django 1.4。



我这里是我的 views.py

从__future__导入unicode_literals 
从django.shortcuts导入render_to_response
从django.core.context_processors导入csrf
from rsb.forms import RegisterForm

def index(request):
return render_to_response(index.html)

def services(request )
return render_to_response(services.html)

def login(request):
return render_to_response(login.html)

def contact(request):
return render_to_response(contact.html)

def about(request):
return render_to_response(about.html)

def registerUser(request):
form = RegisterForm()
data = {}
data.update(csrf(request))
data.update({' form':form})
return render_to_response(register.html,data)

def addUser(request):
return render_to_response(added_user.html)

这是我的网址。 py

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

#取消注释下面两行以启用admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
url(r'^ services /','rsb.views.services'),
url(r'^ login /','rsb.views.login'),
url(r'注册/','rsb.views.registerUser'),
url(r'^ contact /','rsb.views.contact'),
url(r'^ about /','rsb 。)
url(r'^ addUser /','rsb.views.addUser'),

url(r'^ admin /',include(admin。 site.urls)),


这是我的 forms.py

  class RegisterForm(forms.Form):
client_type =('个人','公司')
countries = Countries.object s.all()
unitedStates = UnitedStates.objects.all()

country_choices = []
为国家/地区的项目:
country_choices.append(countries.name )

state_choices = []
在unitedStates中的项:
state_choices.append(unitedStates.name)

rsb_client_type = forms.ChoiceField(widget = form.Select(),choices = client_type,required = True)
rsb_first_name = forms.CharField(max_length = 25,required = True)
rsb_last_name = forms.CharField(max_length = 25,required = True)
rsb_company_name = forms.CharField(max_length = 25)
rsb_address1 = forms.CharField(max_length = 50,required = True)
rsb_address2 = forms.CharField(max_length = 50)
rsb_city = forms.CharField(max_length = 50,required = True)
rsb_country = forms.ChoiceField(widget = forms.Select(),choices = country_choices,required = True)

if rsb_country =='美国'):
rsb_state = forms.ChoiceField(widget = forms.Select(),choices = state_choices,required = True)
else:
rsb_state = forms.CharField(max_length = 50,required = True)

rsb_zip_code = forms.CharField(max_length = 25,required = True)
rsb_phone_number = USPhoneNumberField(label =Phone,widget = USPhoneNumberMultiWidget(),required = True)
rsb_email = EmailField(required = True)

请注意,这远远没有抛光。我只是无法访问我的观点。我运行 python manage.py runserver 并尝试 http://127.0.0.1:8000/register/ 并收到以下错误:

 无法导入rsb.views.registerUser。模块rsb.views中不存在视图。 

我收到类似的错误,无论我尝试访问哪一个视图。



请帮助。



EDIT1:



对不起,这里是追溯:

 追溯:
文件/usr/local/lib/python2.7/dist-packages/Django-1.4 $ _

文件/usr/local/lib/python2.7/dist-解决
300中的包/ Django-1.4.1-py2.7.egg / django / core / urlresolvers.py。sub_match = pattern.resolve(new_path)
文件/ usr / local / lib /python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py解析
209. return ResolverMatch(self.callback,args,kwargs,self。名称)
文件/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py在回调
216 。self._callback = get_callable(self._callback_str)
文件/ usr / local / lib / python2.7 / dist-packages / Django-1.4.1-py2.7.egg / django / utils / functional.pyin wrapper
27. result = func(* args)
文件/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.pyin get_callable
101.(lookup_view ,mod_name))

异常类型:ViewDoesNotExist at / register /
异常值:无法导入rsb.views.registerUser。模块rsb.views中不存在视图。


解决方案

重命名 rsb.views。根据 rsb.views.register_user -0008 /rel =nofollow> PEP 8


函数名应为小写,单词以
的下划线是必要的,以提高可读性。


现在问题。您有:

  country_choices = [] 
为国家/地区的项目:
country_choices.append(countries。

state_choices = []
在美国的项目:
state_choices.append(unitedStates.name)

应该是:

  country_choices = [] 
对于国家/地区中的项目:
country_choices.append(item.name)

state_choices = []
在unitedStates中的项目:
state_choices.append(item.name)


I'm running Django 1.4 with Python 2.7 on Kubuntu 12.04.

I here is my views.py

from __future__ import unicode_literals
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from rsb.forms import RegisterForm

def index(request):
    return render_to_response("index.html")

def services(request):
    return render_to_response("services.html")

def login(request):
    return render_to_response("login.html")

def contact(request):
    return render_to_response("contact.html")

def about(request):
    return render_to_response("about.html")

def registerUser(request):
    form = RegisterForm()
    data = {}
    data.update(csrf(request))
    data.update({ 'form' : form })
    return render_to_response("register.html", data)

def addUser(request):
    return render_to_response("added_user.html")

Here is my urls.py

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

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^services/', 'rsb.views.services'),
    url(r'^login/', 'rsb.views.login'),
    url(r'^register/', 'rsb.views.registerUser'),
    url(r'^contact/', 'rsb.views.contact'),
    url(r'^about/', 'rsb.views.about'),
    url(r'^addUser/', 'rsb.views.addUser'),

    url(r'^admin/', include(admin.site.urls)),

)

Here is my forms.py

class RegisterForm(forms.Form):
    client_type = ('Personal', 'Company')
    countries = Countries.objects.all()
    unitedStates = UnitedStates.objects.all()

    country_choices = []
    for item in countries:
        country_choices.append(countries.name)

    state_choices = []
    for item in unitedStates:
        state_choices.append(unitedStates.name)

    rsb_client_type = forms.ChoiceField(widget = forms.Select(), choices = client_type, required = True)
    rsb_first_name = forms.CharField(max_length = 25, required = True)
    rsb_last_name = forms.CharField(max_length = 25, required = True)
    rsb_company_name = forms.CharField(max_length = 25)
    rsb_address1 = forms.CharField(max_length = 50, required = True)
    rsb_address2 = forms.CharField(max_length = 50)
    rsb_city = forms.CharField(max_length = 50, required = True)
    rsb_country = forms.ChoiceField(widget = forms.Select(), choices = country_choices, required = True)

    if (rsb_country == 'United States'):
        rsb_state = forms.ChoiceField(widget = forms.Select(), choices = state_choices, required = True)
    else:
        rsb_state = forms.CharField(max_length = 50, required = True)

    rsb_zip_code = forms.CharField(max_length = 25, required = True)
    rsb_phone_number = USPhoneNumberField(label = "Phone", widget = USPhoneNumberMultiWidget(), required = True)
    rsb_email = forms.EmailField(required = True)

Please note that this is far from polished. I'm just simply having trouble accessing my views. I ran python manage.py runserver and tried http://127.0.0.1:8000/register/ and received the following error:

Could not import rsb.views.registerUser. View does not exist in module rsb.views.

I receive a similar error regardless of which view I try and access.

Please help.

EDIT1:

Sorry, here is the traceback:

Traceback:
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in resolve
  300.                     sub_match = pattern.resolve(new_path)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in resolve
  209.             return ResolverMatch(self.callback, args, kwargs, self.name)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in callback
  216.         self._callback = get_callable(self._callback_str)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/utils/functional.py" in wrapper
  27.         result = func(*args)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in get_callable
  101.                     (lookup_view, mod_name))

Exception Type: ViewDoesNotExist at /register/
Exception Value: Could not import rsb.views.registerUser. View does not exist in module rsb.views.

解决方案

Rename rsb.views.registerUser to rsb.views.register_user according to the PEP 8:

Function names should be lowercase, with words separated by underscores as necessary to improve readability.

Now to the problem. You have:

country_choices = []
for item in countries:
    country_choices.append(countries.name)

state_choices = []
for item in unitedStates:
    state_choices.append(unitedStates.name)

which should be:

country_choices = []
for item in countries:
    country_choices.append(item.name)

state_choices = []
for item in unitedStates:
    state_choices.append(item.name)

这篇关于模块中不存在视图 - 当它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆