Не удается разрешить ключевое слово 'items' в поле. Варианты: идентификатор, имя
Я использую фотолог для создания сайта фотогалереи с django. Я установил django-tagging в свой virtualenv, не зная, что его больше не поддерживает фотолог. Теперь, после выполнения миграции, всякий раз, когда я пытаюсь добавить фотографию или просматривать фотографию, я получаю FieldError в /admin/photologue/photo/upload_zip/ Не могу разрешить ключевые слова "элементы" в поле. Варианты: идентификатор, имя.
Я удалил и переустановил django, photologue, файл SQLite и удалил django-tagging, но проблема сохраняется. Я также попытался запустить другой проект, который использует фотолог и разделяет virtualenv, и мне предлагается выполнить ту же (предположительно разрушительную) миграцию.
Я не могу понять, что могло бы измениться в моей системе, если бы проблема охватывала несколько проектов и все зависимости были недавно установлены.
Расположение исключения: /home/cameron/Envs/photologue/local/lib/python2.7/site-packages/django/db/models/sql/query.py в 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 ответа
Проблема, кажется, возникает из-за того, что django-тегирование все еще присутствовало на virtualenv.
В вашей трассировке после того, как фотолог сохранил модель, 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
и вот где происходит ошибка.
Думаю, способ, которым вы удалили django-tagging на venv, не сработал. Вы удалили с помощью: pip uninstall django-tagging
?
Для справки, здесь снова мой комментарий / шаги по воссозданию venv
... Если ваш венв как-то поврежден, проще всего было бы воссоздать его с нуля:
На вашем венве делаю:
env pip freeze > orig_requirements.txt
Проверить
orig_requirements.txt
и удалите все, что вам не нужно.Создайте новый venv без site-пакетов и переустановите требования:
mkvirtualenv --no-site-packages photoenv
pip install -r orig_requirements.txt
Теперь дважды проверьте, используете ли вы этот venv, когда запускаете проект django.
workon photoenv
Что ж, ошибка проста - вы запрашиваете поле в базе данных, которое не существует. Поскольку вы не разместили код, трудно быть более конкретным, чем это. Был ли создан один из ваших шаблонов, ссылающийся на поле с именем 'items', которого больше нет?
Пожалуйста, отредактируйте ваш вопрос, включив в него полную трассировку, а также код, где, по вашему мнению, может быть проблема
Полная обратная связь даст вам лучшее представление о том, где проблема.