1

尝试制作我的第二个 Django 应用程序:基于 Django Oscar 的商店。我正在关注关于 RTFD 的教程。我在这个阶段遇到了问题http://django-oscar.readthedocs.org/en/latest/internals/getting_started.html#creating-product-classes-and-fulfillment-partners

每个 Oscar 部署都需要至少一个产品类别和一个履行合作伙伴。这些不是自动创建的,因为它们高度特定于您要构建的商店。设置它们的最快方法是在 localhost:8000/admin/ 登录 Django 管理界面并在那里创建两者的实例。对于部署设置,我们建议将它们创建为数据迁移。

但是,当我尝试登录管理员时,生成的错误是:

ProgrammingError at /admin/

(1146, "Table 'winestoreoscar.django_admin_log' doesn't exist")
....
Error during template rendering

In template /home/david/.virtualenvs/winestoreoscar/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/index.html, error at line 65
1146

此模板显示在错误中,此行突出显示:

 <ul class="actionlist">
**65    {% for entry in admin_log %}**
66  <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">

所以看起来我缺少一张桌子。我使用 MySQL 作为数据库。在 mysql 提示符中,我尝试了明显的..

mysql> CREATE TABLE winestoreoscar.django_admin_log;

但收到错误消息...

ERROR 1113 (42000): A table must have at least 1 column

然后我尝试删除管理模板中的整个 for 循环,并且管理成功呈现,但尝试保存导致上一个错误。

现在我被困住了。非常感谢任何帮助。

编辑:这是来自基本目录的树(想 - 我需要一个 admin.py.. 吗?):

├── manage.py
└── oscarwinestore
    ├── __init__.py
    ├── __init__.pyc
    ├── settings.py
    ├── settings.py~
    ├── settings.pyc
    ├── urls.py
    ├── urls.py~
    ├── urls.pyc
    ├── wsgi.py
    └── wsgi.pyc

我的 urls.py 是

from django.conf.urls import include, url
from oscar.app import application
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^i18n/', include('django.conf.urls.i18n')),

    # The Django admin is not officially supported; expect breakage.
    # Nonetheless, it's often useful for debugging.
    url(r'^admin/', include(admin.site.urls)),

    url(r'', include(application.urls)),
]
4

1 回答 1

1

根据文档,您需要使用syncdband创建表:migrate

$ python manage.py syncdb --noinput
$ python manage.py migrate

你这样做了吗?

于 2014-09-01T14:28:12.610 回答