2015-01-07 2 views
0

hi im new для django и создал форму biodata, но проблема в том, что когда я пытаюсь сохранить форму в db, она дает ошибку (1146, «Таблица» django_db.tictactoe_biodata ' не существует ")не может сохранить модельную форму в базе данных в django

любая помощь приветствуется .. :)

мой 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': '' 
} 

}

и errors-

>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-адрес или что-нибудь еще

заранее спасибо

+1

Почему будет ли это иметь какое-либо отношение к IP-адресам? Сообщение об ошибке достаточно ясно, таблица db не существует. Вы создали миграции и запустили их? –

+0

@ DanielRoseman он использует django 1.6, поэтому нет встроенной поддержки миграции. –

ответ

1

сообщение об ошибке кажется совершенно ясным: вы определили модель в django, но забыли создать таблицу модели в своей базе данных. В django < 1.7 встроенная команда управления syncdb (https://docs.djangoproject.com/en/1.6/ref/django-admin/#syncdb) создаст таблицу, если она не существует, но вам придется вручную следить за изменениями схемы (если вы добавляете/удаляете/модифицируете поля из существующей модели) , поэтому я настоятельно рекомендую вам использовать Юг (https://south.readthedocs.org/en/latest/) для обработки миграции схем и данных или просто перейти на django 1.7, который имеет встроенную поддержку для миграции схем и данных.

В качестве примечания стороны: хорошая практика после успешной публикации - перенаправить (http://en.wikipedia.org/wiki/Post/Redirect/Get).

+0

thnx for d help sir ... я постараюсь это точно .. :) – aquaman

0

Необходимо создать миграцию и запустить их. Я вижу, что вы используете Django 1.6.1, так что вы должны выполнить следующие действия:

Откройте ваш settings.py и проверить, если у вас есть «юг» на вашем INSTALLED_APPS (Если нет, следовать этому guide)

Откройте терминал

Перейти к корню вашего проекта (там, где находится файл manage.py)

Выполнить следующие команды:

python manage.py syncdb 
python manage.py schemamigration nameofyourapp --initial 
python manage.py migrate nameofyourapp 
python manage.py schemamigration nameofyourapp --auto 
Смежные вопросы