python - Django 中的 db_type (尝试安装 pootle w/mysql)

标签 python django

此处提出的类似查询:Getting db_type() error while using django-facebook connect for DjangoApp

我正在尝试在 CentOS 机器上安装 Pootle,详细信息如下:

[root@localhost pootle]# cat /etc/redhat-release<br>
CentOS release 6.2 (Final)
<br>
[root@localhost pootle]# PootleServer --version<br>
Pootle 2.1.6<br>
Translate Toolkit 1.9.0<br>
Django 1.4<br>
[root@localhost pootle]# python -V<br>
Python 2.6.6

我收到以下错误:

Creating tables ...
Traceback (most recent call last):
  File "/usr/lib64/python2.6/wsgiref/handlers.py", line 94, in run
    self.finish_response()
  File "/usr/lib64/python2.6/wsgiref/handlers.py", line 134, in finish_response
    for data in self.result:
  File "/usr/lib/python2.6/site-packages/django/http/__init__.py", line 710, in next
    chunk = self._iterator.next()
  File "/usr/lib/python2.6/site-packages/pootle_misc/dbinit.py", line 134, in staggered_install
    yield syncdb()
  File "/usr/lib/python2.6/site-packages/pootle_misc/dbinit.py", line 76, in syncdb
    call_command('syncdb', interactive=False)
  File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 91, in handle_noargs
    sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
  File "/usr/lib/python2.6/site-packages/django/db/backends/creation.py", line 44, in sql_create_model
    col_type = f.db_type(connection=self.connection)
TypeError: db_type() got an unexpected keyword argument 'connection'

在我编辑 /usr/lib/python2.6/site-packages/django/db/backends/creation.py 到我认为可以纠正问题的方式后,我仍然得到当我尝试加载网页时,我的 PootleServer 屏幕显示以下输出:

Creating tables ...
Traceback (most recent call last):
  File "/usr/lib64/python2.6/wsgiref/handlers.py", line 94, in run
    self.finish_response()
  File "/usr/lib64/python2.6/wsgiref/handlers.py", line 134, in finish_response
    for data in self.result:
  File "/usr/lib/python2.6/site-packages/django/http/__init__.py", line 710, in next
    chunk = self._iterator.next()
  File "/usr/lib/python2.6/site-packages/pootle_misc/dbinit.py", line 134, in staggered_install
    yield syncdb()
  File "/usr/lib/python2.6/site-packages/pootle_misc/dbinit.py", line 76, in syncdb
    call_command('syncdb', interactive=False)
  File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 91, in handle_noargs
    sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
  File "/usr/lib/python2.6/site-packages/django/db/backends/creation.py", line 45, in sql_create_model
    col_type = f.db_type(self.connection)
TypeError: db_type() takes exactly 1 argument (2 given)

网页显示:

Error: "(1146, "Table 'p2.siteconfig_siteconfiguration' doesn't exist")" while attempting to access the Pootle database, will try to initialize database.

有问题的行是第 44 行,如下所示:

    col_type = f.db_type(connection=self.connection)

我已将其注释掉,并在其下方添加了一行,如下所示:

    #col_type = f.db_type(connection=self.connection)
    col_type = f.db_type(self.connection)

之前运行服务器会出现此错误,但在此之前有许多成功创建的通知,正如我们在此处看到的:

mysql> show tables;

+-----------------------------------------------+
| Tables_in_p2                                  |
+-----------------------------------------------+
| auth_group                                    |
| auth_group_permissions                        |
| auth_permission                               |
| auth_user                                     |
| auth_user_groups                              |
| auth_user_user_permissions                    |
| django_admin_log                              |
| django_content_type                           |
| django_session                                |
| django_site                                   |
| pootle_app_directory                          |
| pootle_app_language                           |
| pootle_app_permissionset                      |
| pootle_app_permissionset_negative_permissions |
| pootle_app_permissionset_positive_permissions |
| pootle_app_pootleprofile                      |
| pootle_app_pootleprofile_alt_src_langs        |
| pootle_app_pootleprofile_languages            |
| pootle_app_pootleprofile_projects             |
| pootle_app_project                            |
| pootle_app_submission                         |
| pootle_app_suggestion                         |
| pootle_app_translationproject                 |
| pootle_notifications_notice                   |
| pootle_store_qualitycheck                     |
| pootle_store_store                            |
| pootle_store_suggestion                       |
| pootle_store_unit                             |
| registration_registrationprofile              |
+-----------------------------------------------+
29 rows in set (0.00 sec)

如果这是一个冗长的问题,我很抱歉,但是我正在尝试提供尽可能多的相关信息,以便让您更好地了解正在发生的事情。

如果您知道解决此问题的方法,请告诉我,因为互联网似乎缺乏与 Pootle 相关的修复。

编辑: 看到这个:How to fix django's db_type deprecation warning?

更改了 settings.py 文件以使其包含以下内容:

    col_type = f.db_type(connection=connection)
    #col_type = f.db_type(connection=self.connection)
    #col_type = f.db_type(self.connection)

收到此错误:

NameError: global name 'connection' is not defined

最佳答案

Pootle 似乎不支持 Django 1.4 卸载 Django 1.4 并安装旧的 1.3.1 版本。

这可能会有所帮助: How do I install an old version of Django on virtualenv?

关于python - Django 中的 db_type (尝试安装 pootle w/mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646635/

相关文章:

python - django 形式的附加字段

python - Django:如何在 settings.py 中退出

android - 需要帮助使用 Google Oauth 和 Android 配置 Django Rest API

python - 按 2D 数组索引 3D 数组

python - 资源已耗尽 Google Cloud Speech

python - Pytest,断言而不破坏程序流程

python - 使用 OpenPyXL 在工作表的页眉/页脚插入图像

python - DRF 不会将原始 JSON 字符串发送到浏览器。它返回一个 JSON 字符串,想要绕过调用 json.load

python - spacy 相似性方法不能正常工作

python - 如何用 Python 制作一个改变游戏当前区域的引擎?