在 Django 1.3 上使用 Django-multilingual-ng 进行编辑时,管理页面中出现错误



我试图将我的应用程序切换为使用多语言ng,不幸的是,网上的文档和常见问题解答很少。我希望有人能够说出我的练习是怎么回事,

以下是我的模型

class Main(models.Model):
    """ Main Class for all categories """
    slug       = models.SlugField()
    is_active  = models.BooleanField(default=True)
    site       = models.ForeignKey(Site)
    parent     = models.ForeignKey('self', blank=True, null=True)
    class Translation(TranslationModel):
        title               = models.CharField(max_length=100)
        label               = models.CharField(max_length=100, blank=True, null=True)
        description         = models.TextField(blank=True, null=True)
        disclaimer          = models.TextField(blank=True, null=True)
    class Meta:
        unique_together = (("slug", "parent"))
    def __unicode__(self):
        return self.title if self.title is not None else _("No translation")

以下是我 admin.py

class MainAdmin(MultilingualModelAdmin):
    ''' Multilingual interface for Main category '''
class ListAdmin(MultilingualModelAdmin):
    ''' Multilingual interface for Main category '''

admin.site.register(Main, MainAdmin)
admin.site.register(List, ListAdmin)

当我访问我的管理面板时,我可以看到模型、项目列表、添加新项目,但当我尝试编辑现有项目或删除一个项目时,我收到以下错误

  Environment:

Request Method: GET
Request URL: http://mazban.com/admin/category/main/1/
Django Version: 1.3
Python Version: 2.6.1
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'compressor',
 'django.contrib.gis',
 'multilingual',
 'mazban.lib.apps.core',
 'mazban.lib.apps.gis',
 'mazban.apps.global',
 'mazban.apps.listing',
 'mazban.apps.listing.post',
 'mazban.apps.listing.home',
 'mazban.apps.listing.engine',
 'mazban.apps.listing.category']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'mazban.lib.MiddleWare.custom.RequestIsMobile')

Traceback:
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/contrib/admin/options.py" in wrapper
  307.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/contrib/admin/sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/multilingual/admin.py" in wrapped
  31.         resp = func(cls, request, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/multilingual/admin.py" in change_view
  277.         return super(MultilingualModelAdmin, self).change_view(*args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapper
  28.             return bound_func(*args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/utils/decorators.py" in bound_func
  24.                 return func(self, *args2, **kwargs2)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/db/transaction.py" in inner
  217.                 res = func(*args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/contrib/admin/options.py" in change_view
  947.         obj = self.get_object(request, unquote(object_id))
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/contrib/admin/options.py" in get_object
  451.             return queryset.get(pk=object_id)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/db/models/query.py" in get
  341.         clone = self.filter(*args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/db/models/query.py" in filter
  550.         return self._filter_or_exclude(False, *args, **kwargs)
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/db/models/query.py" in _filter_or_exclude
  568.             clone.query.add_q(Q(*args, **kwargs))
File "/users/mo/Projects/python-envs/mazban/lib/python2.6/site-packages/django/db/models/sql/query.py" in add_q
  1172.                             can_reuse=used_aliases, force_having=force_having)
Exception Type: TypeError at /admin/category/main/1/
Exception Value: add_filter() got an unexpected keyword argument 'force_having'

不要使用 django-multilingual-ng,因为它不再受支持,会给你带来很多麻烦。django-multilingual-ng的作者开始了一个新的有前途的项目,名为django-nani。它应该是可靠的,并且与Django 1.3兼容。

至于我,这个问题没有出现在 Django 1.2.4 上,所以一旦你浏览了 Django 1.2.5 发行说明,你可能想回到那个版本。

我从最新版本安装,错误消失了:

$ pip install git+https://github.com/ojii/django-multilingual-ng.git

尽管使用此版本时错误已消失,但它仍然表示不受支持。我非常倾向于回滚到 Django 1.2.4,但我仍在努力解决这个问题。

如前所述,django-nani 项目很有前途,但它仍处于 alpha 阶段。截至今天的修订版,我找不到处理任何类型的模型关系的方法。他们将很快着手。

我遇到了同样的问题,从 1.2.4 升级到 1.2.7 中的新安全版本。Ng 已经在使用中,即使对它的支持已被放弃,也无法换出。就是我们生活的世界。我找不到任何关于force_having在 django 查询系统中的角色的文档。

很高兴他们正在开发一个新系统。如果有人对force_having有任何了解,将不胜感激。

最新更新