【问题标题】:Django model translation - cannot import name 'Constraint'Django 模型翻译 - 无法导入名称“约束”
【发布时间】:2016-04-12 00:09:50
【问题描述】:

我想用django-modeltranslation 翻译我的模型字段的内容。

当我运行其中之一时:

python manage.py makemigrations
python manage.py runserver

我得到 ImportError: cannot import name 'Constraint'

这是'makemigrations'的追溯

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/core/management/__init__.py", line 324, in execute
    django.setup()
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/contrib/admin/apps.py", line 22, in ready
    self.module.autodiscover()
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/django/utils/module_loading.py", line 50, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/modeltranslation/admin.py", line 20, in <module>
    from modeltranslation.translator import translator
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/modeltranslation/translator.py", line 12, in <module>
    from modeltranslation.manager import (MultilingualManager, MultilingualQuerysetManager,
  File "/home/mat/Desktop/python/pmm/venv/lib/python3.4/site-packages/modeltranslation/manager.py", line 19, in <module>
    from django.db.models.sql.where import Constraint
ImportError: cannot import name 'Constraint'

我使用 django1.9 和最新的 django-modeltranslation。

如果您不能帮我解决错误,请推荐任何其他模型翻译应用程序。

我遇到过一些:

django-multilingual-ds9

django-dbgettext

django-transmeta

但它们似乎不再受支持。您知道这些是否可行,或者您是否知道任何其他可行的解决方案?

如果这很重要,我必须承认我使用django-rosette

【问题讨论】:

  • 我认为这是由于与 Django 1.9 不兼容造成的。过去,当有更新的 Django 版本时,我在使用这类软件包时遇到过问题。也许您对确实需要更新模型的库有更好的运气。您可以在此处查看替代方案:djangopackages.com/grids/g/model-translation 从最推荐到最少排序。

标签: python django django-models internationalization translation


【解决方案1】:

我找到了其他用于模型翻译的应用,django-hvad

像魅力一样工作,完全支持 django1.9,易于实现并且对翻译器友好。

【讨论】:

    【解决方案2】:

    您确定您使用的是最新的 django-modeltranslation 吗?该问题已在不久前报告 (https://github.com/deschler/django-modeltranslation/issues/349),并且已在版本 0.11rc1 (https://pypi.python.org/pypi/django-modeltranslation/0.11rc1) 中修复。

    【讨论】:

    • 我已经看到了这个问题,是的,只要 pip 提供最新版本,我确实有 0.11rc1
    • 据我所知 pip 不会为您提供发布候选版本。从今天开始,pip install django-modeltranslation 将指向包的 0.10.2 版本。
    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2011-07-11
    • 2015-03-01
    • 2011-12-27
    • 2018-05-29
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多