2015-01-07 6 views
0

안녕하세요 메신저 django에 새로 왔는데 biodata 양식을 만들었지 만 문제점은 db에 양식을 저장하려고하면 오류가 발생합니다. (1146, "Table 'django_db.tictactoe_biodata' 어떤 도움이 감사django의 데이터베이스에 modelform을 저장할 수 없습니다

) "존재하지 않는 .. :)

내 views.py

from django.shortcuts import render 
from model import BiodataForm, Biodata 

def get_name(request): 
    if request.method == 'POST': 
     post = request.POST 
     form = BiodataForm(request.POST) 
     if form.is_valid(): 
      biodata = form.save() 
      firstname = post['first_name'] 
      lastname = post['last_name'] 
      return render(request, 'now.html', {'firstname': firstname, 'lastname': lastname}) 
    else: 
     form = BiodataForm() 
    return render(request, 'name.html', {'form': form}) 

내 settings.py

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'django_db', 
'PASSWORD': 'password', 
'USER': 'djangouser', 
'HOST': '', 
'PORT': '' 
} 
012 3,516,

}

제공된 내 대학를 사용하여 오류 -

>ProgrammingError at /getname/ 

>(1146, "Table 'django_db.tictactoe_biodata' doesn't exist") 

>Request Method: POST 
>Request URL: http://10.8.21.17:3369/getname/ 
>Django Version: 1.6.1 
>Exception Type: ProgrammingError 
>Exception Value: 

>(1146, "Table 'django_db.tictactoe_biodata' doesn't exist") 

>Exception Location: /usr/lib/python2.7/dist-packages/MySQLdb/connections.py in   >defaulterrorhandler, line 36 
>Python Executable:  /usr/bin/python 
>Python Version: 2.7.6 
>Python Path: 

>['/home/aquaman/tictactoe', 
> '/usr/lib/python2.7', 
>'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
> '/usr/lib/python2.7/lib-tk', 
> '/usr/lib/python2.7/lib-old', 
> '/usr/lib/python2.7/lib-dynload', 
> '/usr/local/lib/python2.7/dist-packages', 
> '/usr/lib/python2.7/dist-packages', 
> '/usr/lib/python2.7/dist-packages/PILcompat', 
>'/usr/lib/python2.7/dist-packages/gtk-2.0', 
>'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 

>Server time: Wed, 7 Jan 2015 10:25:26 +0000 

메신저 내가 문제가 IP 주소 또는 사전에

덕분 무엇인지 잘 모릅니다 순 proxified

+1

이유 : 프로젝트의 루트에 터미널

이동을 열고

다음 명령을 실행 (여기서 manage.py라는 파일이 있습니다) IP 주소와 관련이 있습니까? 오류 메시지가 명확하고 db 테이블이 존재하지 않습니다. 마이그레이션을 생성하고 실행 했습니까? –

+0

@DanielRoseman 그는 django 1.6을 사용하고 있으므로 마이그레이션을위한 내장 지원은 없습니다. –

답변

1

오류 메시지가 아주 명확하게 보인다 : django에서 모델을 정의했지만 데이터베이스에서 모델의 테이블을 만드는 것을 잊었다. django < 1.7에서는 내장 관리 명령 syncdb (https://docs.djangoproject.com/en/1.6/ref/django-admin/#syncdb)이 없으면 테이블이 생성되지만 스키마 변경 사항을 수동으로 처리해야합니다 (기존 모델에서 필드를 추가/제거/수정하는 경우) 따라서 South (https://south.readthedocs.org/en/latest/)을 사용하여 스키마 및 데이터 마이그레이션을 처리하거나 스키마 및 데이터 마이그레이션을 지원하는 내장 된 django 1.7로 업그레이드하는 것이 좋습니다.

참고 사항 : 성공적인 게시 이후 좋은 사례는 (http://en.wikipedia.org/wiki/Post/Redirect/Get)을 리디렉션하는 것입니다.

+0

thnx님께 도움을 드릴 것입니다 ... 나는 이것을 확실히 시도 할 것입니다 .. :) – aquaman

0

마이그레이션을 만들어 실행해야합니다.

(이 guide를 수행하지 않은 경우)

당신의 settings.py를 열고 당신이 당신의 INSTALLED_APPS에 '남쪽'이 있는지 확인 : 나는 장고 1.6.1를 사용하면 그래서 당신은 다음 단계를 수행해야한다는 참조

python manage.py syncdb 
python manage.py schemamigration nameofyourapp --initial 
python manage.py migrate nameofyourapp 
python manage.py schemamigration nameofyourapp --auto 
관련 문제