2015-02-10 66 views
1

我试图创造一个Django的网站,每次我在我的本地主机上运行/文章/ API /文章页面时:我得到这个回溯:导入错误的文章/ API /条:不能导入名称ArticleResource

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/articles/api/article 

Django Version: 1.7.4 
Python Version: 2.7.8 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.comments', 
'article', 
'tastypie') 

Installed Middleware: 
('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') 


Traceback: 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/handlers/base.py" in get_response 
    87.     response = middleware_method(request) 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/middleware/common.py" in process_request 
    72.    if (not urlresolvers.is_valid_path(request.path_info, urlconf) and 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/urlresolvers.py" in is_valid_path 
    619.   resolve(path, urlconf) 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/urlresolvers.py" in resolve 
    494.  return get_resolver(urlconf).resolve(path) 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/urlresolvers.py" in resolve 
    343.    for pattern in self.url_patterns: 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/urlresolvers.py" in url_patterns 
    372.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/home/deanna/django-deanna/local/lib/python2.7/site-packages/Django-1.7.4-py2.7.egg/django/core/urlresolvers.py" in urlconf_module 
    366.    self._urlconf_module = import_module(self.urlconf_name) 
File "/usr/lib/python2.7/importlib/__init__.py" in import_module 
    37.  __import__(name) 
File "/home/deanna/django_test/django_test/urls.py" in <module> 
    3. from tastypie.api import ArticleResource 

Exception Type: ImportError at /articles/api/article 
Exception Value: cannot import name ArticleResource 

这是我的urls.py文件,该文件位于django_test/django_test目录下:

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from tastypie.api import ArticleResource 

article_resource = ArticleResource() 

urlpatterns = patterns('', 
        url(r'^admin/', include(admin.site.urls)), 
        url(r'^accounts/login/$', 'django_test.views.login'), 
        url(r'^accounts/auth/$', 'django_test.views.auth_view'), 
        url(r'^accounts/loggedin/$', 'django_test.views.loggedin'), 
        url(r'^accounts/invalid/$', 'django_test.views.invalid_login'), 
        url(r'^accounts/logout/$', 'django_test.views.logout'), 
        url(r'^accounts/register/$', 'django_test.views.register_user'), 
        url(r'^accounts/register_success/$', 'django_test.views.register_success'), 
        url(r'^articles/all/$', 'article.views.articles'), 
        url(r'^articles/create/$', 'article.views.create'), 
        url(r'^articles/get/(?P<article_id>\d+)/$', 'article.views.article'), 
        url(r'^articles/like/(?P<article_id>\d+)/$', 'article.views.like_article'), 
        url(r'^articles/add_comment/(?P<article_id>\d+)/$', 'article.views.add_comment'), 
        url(r'^articles/search/', 'article.views.search_titles'), 
        url(r'^articles/api/article', include(article_resource.urls)), 

) 

这是我api.py文件,该文件也位于django_test/django_test目录:

from tastypie.resources import ModelResource 
from tastypie.constants import ALL 
from models import Article 

class ArticleResource(ModelResource): 
    class Meta: 
     queryset = Article.objects.all() 
     resource_name = 'article' 

我试着在api.py文件中分开第三个导入语句,并将它放在一个单独的文件中,但我仍然得到相同的错误,所以这不是问题。我同步了数据库并完成了所有需要的迁移,但我仍遇到同样的错误。我使用的TastyPie版本是0.12.1。

我会很感激我能得到的任何帮助,因为我现在一直坚持这个错误。谢谢。

编辑:我做了一些更改,现在我有一个“页面找不到/ articles/api/article”消息,即使我已经在我的urls.py文件中。这里是回溯:

Using the URLconf defined in django_test.urls, Django tried these URL patterns, in this order: 

1. ^admin/ 
2. ^accounts/login/$ 
3. ^accounts/auth/$ 
4. ^accounts/loggedin/$ 
5. ^accounts/invalid/$ 
6. ^accounts/logout/$ 
7. ^accounts/register/$ 
8. ^accounts/register_success/$ 
9. ^articles/all/$ 
10. ^articles/create/$ 
11. ^articles/get/(?P<article_id>\d+)/$ 
12. ^articles/like/(?P<article_id>\d+)/$ 
13. ^articles/add_comment/(?P<article_id>\d+)/$ 
14. ^articles/search/ 
15. ^articles/api/article ^(?P<resource_name>article)/$ [name='api_dispatch_list'] 
16. ^articles/api/article ^(?P<resource_name>article)/schema/$ [name='api_get_schema'] 
17. ^articles/api/article ^(?P<resource_name>article)/set/(?P<pk_list>.*?)/$ [name='api_get_multiple'] 
18. ^articles/api/article ^(?P<resource_name>article)/(?P<pk>.*?)/$ [name='api_dispatch_detail'] 

The current URL, articles/api/article, didn't match any of these. 

号码15-18在这个回溯没有确切的语句我在urls.py文件写的,所以我很困惑。

+1

它不应该是'从django_test.api进口ArticleResource'? – Selcuk 2015-02-10 14:59:19

+0

我做到了,但现在我有一个不同的ImportError。它说没有模块命名模型。然后我尝试在我的settings.py文件中添加'模型',但命令行表示“没有模块命名模型”。这是没有道理的,因为我已经有一个模型模块。 – brown1001 2015-02-10 15:07:41

+0

您必须在其他位置获取新的错误消息。您可能还需要将'api.py'中的导入更改为'from article.models import Article'。 – Selcuk 2015-02-10 15:15:43

回答

1

您需要更改

from tastypie.api import ArticleResource 

对于像

from django_test.resources import ArticleResource 
from django_test.api import ArticleResource 

甚至可能

from .api ArticleResource 
+0

这没有任何意义,因为我使用的是TastyPie API,我想导入它。我尝试了两个建议,但我得到了相同的ImportError。 – brown1001 2015-02-10 15:10:08

+0

查看新错误我在帖子中发布了以上内容。 – brown1001 2015-02-10 15:27:26

0

在你urls.py文件,更改:

from tastypie.api import ArticleResource 

from django_test.api import ArticleResource 

,并在我们的api.py,变化:

from models import Article 

from article.models import Article 
+0

请参阅上面的文章中的编辑新错误。 – brown1001 2015-02-10 15:27:05

+0

我认为你对Django的url重新路由感到困惑。你没有'/ articles/api/article'的url定义。你可以发布“urls”的内容吗?你的'article_resource'包中的py'? – Selcuk 2015-02-10 15:30:44

+0

'article_resource'设置为'ArticleResource',它从我在api.py文件中声明的'ArticleResource'类继承。但我试图利用TastyPie API。 – brown1001 2015-02-10 15:39:35

相关问题