2017-02-27 2 views
0

페이지 제목과 마찬가지로, 연결된 튜토리얼에 따라 Getting Started with Tastypie이됩니다. 내가 /api/entry/?format=json을로드하려고 할 때,이 오류 메시지와 함께, HTTP 500 응답을 얻을 :Tastypie 시작하기 : 해당 테이블 없음 : myapp_entry

그런 테이블 :

내가 sqlite3를 보면 myapp_entry을, 참으로, 그런 표가 없습니다.

는 여기에 내가 튜토리얼을 따라하는 방법은 다음과 같습니다 튜토리얼에 지정하고, mysite/settings.pyINSTALLED_APPS에 'tastypie'을 추가로 myapp/models.py, myapp/api.pymysite/urls.py을 편집

 
$ django-admin startproject mysite 
$ cd mysite 
$ django-admin startapp myapp 

내가 만든 /.

참고 : 그것은 나를urls.py 파일을 편집하거나 만들 에 명확하지 않았다, 그래서 나는 mysite에서 기존 편집. 그래서 지금은 다음과 같습니다 :이 오류 ImportError를 발생하기 때문에

from django.conf.urls import url, include 
from myapp.api import EntryResource 
from django.contrib import admin 

entry_resource = EntryResource() 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
# url(r'^blog/', include('myapp.urls')), 
    url(r'^api/', include(entry_resource.urls)), 
] 

내가는 '블로그'라인에서 주석 없습니다 : 'myapp.urls'라는 이름의 모듈을. 이 단계는 내가 채우는 단계라고 생각하지만 대신 myapp/urls.py에 자습서 코드를 넣으려고하면 404 페이지에 페이지로드를 시도 할 때 url(r'^blog/', include('myapp.urls'))mysite/urls.py에 추가 할 때 스택 오버플로가 발생합니다. . 그래서 위의 코드로 돌아갔습니다.

명확하게하기 위해이, 여기 내 파일 구조가 지금의 모습입니다 :

 
$ find . -type f -not -name '*.pyc' 
./manage.py 
./myapp/__init__.py 
./myapp/views.py 
./myapp/models.py 
./myapp/tests.py 
./myapp/admin.py 
./myapp/apps.py 
./myapp/migrations/__init__.py 
./myapp/api.py 
./db.sqlite3 
./mysite/__init__.py 
./mysite/settings.py 
./mysite/urls.py 
./mysite/wsgi.py 

Entry 클래스에 Meta 서브 클래스를 추가했다 만든 다른 하나의 변화, 그래서 처음 다스 라인은 다음과 같이 :

내가 그렇게하지 않으면
class Entry(models.Model): 
    user = models.ForeignKey(User) 
    pub_date = models.DateTimeField(default=now) 
    title = models.CharField(max_length=200) 
    slug = models.SlugField(null=True, blank=True) 
    body = models.TextField() 

    class Meta: 
     app_label = 'myapp' 

    # __unicode__() and save() as in the tutorial 

, 나는 콘솔이 얻을 : RuntimeError에 : 모델 클래스 myapp.models.Entry 명시 적 app_label을 선언하지하고 INSTALLED_APPS에서 응용 프로그램에 있지 않습니다.

또 다른 시도는 python manage.py migrate입니다. 할 일이 있지만이 오류가 수정되지 않았습니다. 여기

내가 (requirements.txt/virtualenv에)가 설치되어있어 한 내용은 다음과 같습니다

  • 장고 (1.10)
  • 장고 - tastypie (0.13.3)
  • PyYAML (3.12)
  • mysqlclient (1.3.10) (아직 실제로 설정하지는 않았지만 현재 기본 sqlite3 설정을 사용 중입니다)

파이썬 3.4.3을 실행 중이지만, 파이썬 2.7.6과 매우 비슷한 설정을 사용하여 정확히 동일한 오류가 발생합니다.

 
{"error_message": "no such table: myapp_entry", "traceback": "Traceback (most recent call last): 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute 
    return Database.Cursor.execute(self, query, params) 
sqlite3.OperationalError: no such table: myapp_entry 

The above exception was the direct cause of the following exception: 

Traceback (most recent call last): 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/resources.py", line 219, in wrapper 
    response = callback(request, *args, **kwargs) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/resources.py", line 450, in dispatch_list 
    return self.dispatch('list', request, **kwargs) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/resources.py", line 482, in dispatch 
    response = method(request, **kwargs) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/resources.py", line 1335, in get_list 
    to_be_serialized = paginator.page() 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/paginator.py", line 194, in page 
    count = self.get_count() 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/tastypie/paginator.py", line 126, in get_count 
    return self.objects.count() 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/models/query.py", line 369, in count 
    return self.query.get_count(using=self.db) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/models/sql/query.py", line 476, in get_count 
    number = obj.get_aggregation(using, ['__count'])['__count'] 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/models/sql/query.py", line 457, in get_aggregation 
    result = compiler.execute_sql(SINGLE) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql 
    cursor.execute(sql, params) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/utils.py", line 79, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "~/myproject/virtualenv/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute 
    return Database.Cursor.execute(self, query, params) 
django.db.utils.OperationalError: no such table: myapp_entry 
"} 

아무도 내가 잘못 뭘하는지 볼 수 있습니다

마지막으로, 여기에 HTTP 500 페이지에서 전체 스택 추적입니까? 또는 자습서가이 버전에 적용되지 않습니까?

답변

2

sqlite3.OperationalError: no such table: myapp_entry

하나를 들어, 프로젝트에 SQLite는을 사용하고, MySQL은 없습니다. DATABASES 설정을 업데이트해야합니다.

프로젝트 설정에서 INSTALLED_APPSmyapp을 추가하십시오.

, 실행 ./manage.py migrate. 수정 후 INSTALLED_APPS 장고는 앱의 Entry 모델을 찾아서 테이블을 생성 할 수 있어야합니다.

+0

'DATABASES'가 올바르게 설정되었습니다. 예,'myapp'를'INSTALLED_APPS'에 추가하면 문제가 해결되었습니다. 나는 그것이 어리석은 것 같을 것이라고 생각했습니다. -doh! 감사. –

관련 문제