无法将modelform保存到djang中的数据库

2024-06-16 12:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是django的新手,创建了一个biodata表单,但问题是,当我试图将表单保存到数据库时,会出现错误-(1146,“Table'django”_tictactoe_生物数据数据库'不存在“)

感谢任何帮助…..)

我的视图.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})

我的设置.py在

^{pr2}$

}

而错误-

>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地址还是其他什么

提前谢谢


Tags: djangonamepyformrequestlibpackagesusr
2条回答

错误消息似乎很清楚:您在django中定义了一个模型,但是忘记在数据库中创建模型的表。在django<;1.7中,如果表不存在,内置管理命令syncdbhttps://docs.djangoproject.com/en/1.6/ref/django-admin/#syncdb)将创建该表,但必须手动处理模式更改(如果从现有模型添加/删除/修改字段),所以我强烈建议您要么使用South(https://south.readthedocs.org/en/latest/)来处理模式和数据迁移,要么升级到django1.7,后者内置了对模式和数据迁移的支持。在

附带说明:成功发布后的最佳实践是重定向(http://en.wikipedia.org/wiki/Post/Redirect/Get)。在

您必须创建迁移并运行它们。我看到您使用的是Django 1.6.1,因此您必须遵循以下步骤:

打开您的设置.py并检查您已安装的应用程序上是否有“south”(如果没有,请按此操作guide

打开终端

转到项目的根目录(其中有一个名为管理.py)在

运行以下命令:

python manage.py syncdb
python manage.py schemamigration nameofyourapp  initial
python manage.py migrate nameofyourapp
python manage.py schemamigration nameofyourapp  auto

相关问题 更多 >