2015-01-28 3 views
2

Я довольно новичок в Django/Python и немного разобрался в этом.Исключение запроса Django __init __() получил неожиданный аргумент ключевого слова 'hints'

Ubuntu 14,04 Apache Django 1.7.4 питона 2,7 Postgresql

__init__() got an unexpected keyword argument 'hints' 
Request Method: GET 
Request URL: http://localhost/ 
Django Version: 1.7.4 
Exception Type: TypeError 

class Tier(models.Model): 
    id = models.IntegerField(primary_key=True) 
    name = models.CharField(max_length=100) 

class Recipe(models.Model): 
    id = models.UUIDField(auto_add=True, primary_key=True, default=uuid.uuid4) 
    name = models.CharField(max_length=100) 
    tier = models.ForeignKey(Tier) 

Вот код выполняется, ошибки в попытке получить идентификатор уровня.

firstRecipe = Recipe.objects.first() 
tierId = firstRecipe.tier.id 

Мои таблицы базы данных

web_recipe 
    id 
    name 
    tier_id 

web_tier 
    id 
    name 

StackTrace

Traceback: 
File "/home/user123/daoresources/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/user123/daoresources/web/views.py" in index 
    7. firstRecipe = Recipe.objects.first() 
File "/home/user123/daoresources/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method 
    92.     return getattr(self.get_queryset(), name)(*args, **kwargs) 
File "/home/user123/daoresources/env/lib/python2.7/site-packages/django/db/models/query.py" in first 
    508.   qs = self if self.ordered else self.order_by('pk') 
File "/home/user123/daoresources/env/lib/python2.7/site-packages/django/db/models/query.py" in order_by 
    812.   obj = self._clone() 
File "/home/user123/daoresources/env/lib/python2.7/site-packages/django/db/models/query.py" in _clone 
    955.   c = klass(model=self.model, query=query, using=self._db, hints=self._hints) 

Exception Type: TypeError at/
Exception Value: __init__() got an unexpected keyword argument 'hints' 

Окружающая среда:

Django Version: 1.7.4 
Python Version: 2.7.6 
Installed Applications: 
('web', 'django_pg') 
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') 

EDIT: Я в конечном итоге просто говорю, что винт это и превращали мой проект к mysql и все работает отлично. Если кто-то придумает правильный ответ, я проверю его по новому сформированному проекту и пометьте его как правильно.

ответ

1

Установите последнюю версию django-pgfields из git. Он исправил это для меня.

При установке из требований файл затем удалить «Джанго-pgfields» и добавить

-e git://github.com/lukesneeringer/django-pgfields.git#egg=django-pgfields 
+0

ли она исправлена ​​в течение последних нескольких дней? Кто-то уже отправил это как ответ, и он не сработал, но он удалил свой ответ, потому что он не принимался. Я попробую еще раз здесь. – James

+0

Не знаю, когда он был исправлен. Но он исправил это для меня, чтобы обновить его вот так. – Christoffer

+0

Мы столкнулись с связанной проблемой с django-hstore. Последняя стабильная версия исправления устраняет эту проблему. Кажется вероятным, что для любых пакетов, основанных на расширениях PostgreSQL, возможно, потребуется изучить обновления Django> = 1.7 – csmith