2016-04-20 51 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現在可以工作了