无法将关键字“商品”解析为字段。选择是:id,name

时间:2014-12-01 23:33:40

标签: python django django-models virtualenv photologue

我正在使用photologue用django创建照片库网站。我在我的virtualenv中安装了django-tagging,不知道它不再受photologue的支持。现在,在执行迁移后,每当我尝试添加照片或查看照片时,我都会在/ admin / photologue / photo / upload_zip /获得FieldError 无法将关键字“商品”解析为字段。选择是:id,name。

我卸载并重新安装了django,photologue,SQLite文件,并删除了django-tagging,但问题仍然存在。我还尝试运行一个使用photologue并共享virtualenv的不同项目,并且提示我执行相同(假设破坏性)迁移。

如果问题跨越多个项目且所有依赖项都已重新安装,我无法弄清楚我的系统上可能发生的变化。

例外位置:/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py in raise_field_error,第1389行

回溯:

Environment:


Request Method: POST
Request URL: http://localhost:8000/admin/photologue/photo/add/

Django Version: 1.7.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'sortedm2m',
 'photologue',
 'photologue_custom',
 'pornsite')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
  584.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  105.                     response = view_func(request, *args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  52.         response = view_func(request, *args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
  204.             return view(request, *args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view
  1454.         return self.changeform_view(request, None, form_url, extra_context)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
  29.             return bound_func(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  105.                     response = view_func(request, *args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
  25.                 return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/transaction.py" in inner
  394.                 return func(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in changeform_view
  1405.                 self.save_model(request, new_object, form, not add)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in save_model
  1046.         obj.save()
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/photologue/models.py" in save
  540.         super(Photo, self).save(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/photologue/models.py" in save
  491.         super(ImageModel, self).save(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/base.py" in save
  591.                        force_update=force_update, update_fields=update_fields)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  628.                                    update_fields=update_fields, raw=raw, using=using)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  198.             response = receiver(signal=self, sender=sender, **named)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/tagging/fields.py" in _save
  81.             Tag.objects.update_tags(kwargs['instance'], tags)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/tagging/models.py" in update_tags
  34.                                         items__object_id=obj.pk))
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  92.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/query.py" in filter
  691.         return self._filter_or_exclude(False, *args, **kwargs)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/query.py" in _filter_or_exclude
  709.             clone.query.add_q(Q(*args, **kwargs))
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in add_q
  1287.         clause, require_inner = self._add_q(where_part, self.used_aliases)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in _add_q
  1314.                     current_negated=current_negated, connector=connector)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in build_filter
  1138.         lookups, parts, reffed_aggregate = self.solve_lookup_type(arg)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in solve_lookup_type
  1076.         _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in names_to_path
  1383.             self.raise_field_error(opts, name)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in raise_field_error
  1389.                          "Choices are: %s" % (name, ", ".join(available)))

Exception Type: FieldError at /admin/photologue/photo/add/
Exception Value: Cannot resolve keyword 'items' into field. Choices are: id, name

2 个答案:

答案 0 :(得分:1)

这个问题似乎是因为django-tagging在某种程度上仍然出现在virtualenv上。

在photologue保存模型后的追溯中,django-tagging会对发送的信号作出反应并尝试更新任何相关标签:

File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  198.             response = receiver(signal=self, sender=sender, **named)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/tagging/fields.py" in _save
  81.             Tag.objects.update_tags(kwargs['instance'], tags)
File "/home/cameron/Envs/photologue/local/lib/python2.7/site-packages/tagging/models.py" in update_tags
  34.                                         items__object_id=obj.pk))

它尝试使用(显然不再存在)字段items,以及发生错误的地方。

我猜你在venv上卸载django-tagging的方式并没有真正起作用。您是否已卸载:pip uninstall django-tagging

作为参考,这里再次发表我的评论/重建venv的步骤

...如果您的venv以某种方式被破坏,最简单的方法是从头开始重建:

  1. 在你的venv上:

    env pip freeze > orig_requirements.txt

    检查orig_requirements.txt并删除您不需要的所有内容。

  2. 制作一个没有站点包的新venv并重新安装要求:

    mkvirtualenv --no-site-packages photoenv

    pip install -r orig_requirements.txt

  3. 现在,在运行你的django项目时,请仔细检查你的这个venv

    workon photoenv

答案 1 :(得分:0)

错误很简单 - 因为您要求数据库中不存在的字段。由于您还没有发布代码,因此很难具体而言。是否构建了一个模板,引用了一个名为' items'那不再存在?

请编辑您的问题,以包含完整的回溯以及您认为问题可能存在的一些代码。

完整的追溯功能可让您更好地了解问题所在。