2016-04-20 66 views
2

我下面的教程,但是我有一些问题...views和urlpattern:导入问题?

url.py

urlpatterns = [ 
    url(r'^$', 'TasksManager.views.index.page', name="public_index"), 
    url(r'^connection-TasksManager$', 'TasksManager.views.connection.page', 
     name="public_connection"), 
    ... 
] 

TasksManager和视图目录,索引和连接的文件的.py和页面是DEF这些文件里面。我不知道为什么教程不要让我写在views.py意见

反正它给我一个import error: No module named ' TasksManager' 我不知道在什么url.py进口...

from . import TasksManager ? (它给错误)

import TasksManager.index? (也许它什么都不干)

我的目录结构:

Work_Manager 
|__manage.py 
|__TasksManager 
|  |_ __init__.py 
|  |_admin.py 
|  |_apps.py 
|  |_models.py 
|  |_views.py (empty) 
|  |_views 
|   |_ __init__.py 
|   |_index.py 
|   |_connection.py 
|   |_... 
|__Work_Manager 
     |_ __init__.py 
     |_database.db 
     |_settings.py 
     |_url.py 

如果我把index.pyconnection.py在任务管理器的目录和更改URL中url(r'^$', 'TasksManager.connection.page', name="public_connection"),(我删除.views)地址有效,但在我的模板(HTML)的链接不要:<a href="{% url 'public_connection' %}">Connection</a>并给出了同样的错误import error: No module named ' TasksManager'

此外,它给这个警告:支持字符串视图参数的URL()已被弃用,将在Django 1.10除去(有TasksManager.views .index.page)。代之以传递可调用信息。

谢谢您的帮助

PS:我使用Python 3.4和1.9的Django

完全回溯:

Environment: 


Request Method: GET 
Request URL: http://localhost:8000/ 

Django Version: 1.9.5 
Python Version: 3.4.3 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'TasksManager'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 


Template error: 
In template C:\Python34\Scripts\Work_Manager\Work_manager\TasksManager\templates\en\public\index.html, error at line 58 
    No module named ' TasksManager' 48 :  {% for city in array_city %} 
    49 :   <li> 
    50 :   {{ city }} 
    51 :   </li> 
    52 :  {% endfor %} 
    53 :  </ul> 
    54 : 
    55 : <article> 
    56 :  Hello world ! <br /> 
    57 :  <!--<a href="connection">Connection</a>--> 
    58 :  <a href=" {% url 'public_connection' %} ">Connection</a> 
    59 :  <a href="{% url 'create_developer' %}">Create developer</a> 
    60 :  <a href="{% url 'create_supervisor' %}">Create supervisor</a> 
    61 :  <a href="{% url 'create_project' %}">Create project</a> 
    62 : </article> 
    63 : {% endblock %} 
    64 : 

Traceback: 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in get_callable 
    115.   mod = import_module(mod_name) 

File "C:\Python34\lib\importlib\__init__.py" in import_module 
    109.  return _bootstrap._gcd_import(name[level:], package, level) 

During handling of the above exception (No module named ' TasksManager'), another exception occurred: 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\handlers\base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\handlers\base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "C:\Python34\Scripts\Work_Manager\Work_manager\TasksManager\views\index.py" in page 
    39.  return render(request, 'en/public/index.html', locals()) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\shortcuts.py" in render 
    67.    template_name, context, request=request, using=using) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\loader.py" in render_to_string 
    97.   return template.render(context, request) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\backends\django.py" in render 
    95.    return self.template.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render 
    206.      return self._render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in _render 
    197.   return self.nodelist.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render 
    992.     bit = node.render_annotated(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render_annotated 
    959.    return self.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\loader_tags.py" in render 
    173.   return compiled_parent._render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in _render 
    197.   return self.nodelist.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render 
    992.     bit = node.render_annotated(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render_annotated 
    959.    return self.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\loader_tags.py" in render 
    69.     result = block.nodelist.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render 
    992.     bit = node.render_annotated(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\base.py" in render_annotated 
    959.    return self.render(context) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\template\defaulttags.py" in render 
    499.    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in reverse 
    600.  return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in _reverse_with_prefix 
    448.    self._populate() 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in _populate 
    334.     lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args)) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in callback 
    255.   self._callback = get_callable(self._callback_str) 

File "C:\Python34\lib\functools.py" in wrapper 
    448.     result = user_function(*args, **kwds) 

File "c:\Python34\Scripts\Work_Manager\myvenv\lib\site-packages\django\core\urlresolvers.py" in get_callable 
    121.    if submod and not module_has_submodule(import_module(parentmod), submod): 

File "C:\Python34\lib\importlib\__init__.py" in import_module 
    109.  return _bootstrap._gcd_import(name[level:], package, level) 

Exception Type: ImportError at/
Exception Value: No module named ' TasksManager' 

回答

1

似乎你不有__init__.py文件在您文件夹。这可以只是一个空文件。

__init__.py文件需要使Python将 目录视为包含包;这样做是为了防止 目录有一个共同的名字,比如字符串,无意中 后来隐藏在模块搜索路径上发生的有效模块。在 最简单的情况下,__init__.py可以只是一个空文件,但它可以 也初始化代码包或设置__all__ 变量,后面描述

我相信你的进口应该是

from TaskManager import index 

import TaskManager 

more ...

+1

谢谢@ v1k45我没有意识到__已被放在复制粘贴。不知道为什么。 – e4c5

+0

它发生是因为双下划线表示标记中的粗体/强文本格式 – v1k45

+0

@ e4c5有'__init __。py'(空)。我编辑了我的目录结构 – fabio

0

我解决了!

有在我的网址一个数字错误。py现在可以工作了