0

我在 PowerShell 上使用 Django 1.4.3,python manage.py使用异常值运行后出现数据库错误:

(1054, "Unknown column 'ventas_cliente.apellidos' in 'field list'")

所以我正在关注一个 Django 教程,并且我有一个项目的以下目录:

demo/
    demo/
        apps/
            ventas/
                __init__.py
                admin.py
                models.py
                tests.py
                views.py
            __init.py
        __init__.py
        settings.py
        urls.py
        wsgi.py
 manage

在 admin.py 下我有:

from django.contrib import admin
from demo.apps.ventas.models import cliente.producto

# Register the ventas models
admin.site.register(cliente)
admin.site.register(producto)

从models.py,

from django.db import models

class cliente(models.Model):
    nombre      = models.CharField(max_length=200)
    apellidos    = models.CharField(max_length=200)
    status      = models.BooleanField(default=True)

class producto(models.Model):
    nombre      = models.CharField(max_length=200)
    descripcion = models.TextField(max_length=300)
    status      = models.BooleanField(default=True)

我正在使用 MySQL,我没有更改数据库。runserver确实有效,我可以访问 localhost:8000/admin。我有一个名为“ventas”的新类别,其中包含“cliente”和“producto”子类别。我可以访问“producto”,但“cliente”给了我数据库错误。

似乎有什么问题?我怀疑这与我的 models.py 文件有关,但我不知道为什么。

4

1 回答 1

-1

您的 model.py 和代码不同步。

命令

$ python manage.py syncdb 

做什么

遍历模型,如果该模型存在表,则创建表和匹配字段。如果表确实存在,则它对表不执行任何操作。因此,如果您添加了一个字段,那么“syncdb”虽然听起来像,但不会在数据库中创建自上次 syncdb 以来添加的那些字段。

如果您想同步您的模型和代码,您必须删除表,以便 syncdb 将创建它们。您可以使用:

$ python manage.py flush  

“将数据库返回到它在 syncdb 执行后立即所处的状态。” 资源。https://docs.djangoproject.com/en/dev/ref/django-admin/#flush

于 2013-02-13T20:50:19.873 回答