Печатная ошибка TypeError при рендеринге: непредсказуемый тип: 'dict' - PullRequest
0 голосов
/ 12 февраля 2011

Я очень стараюсь работать с книгой "Практические проекты Django", но эта штука не работает.Вы можете найти мой код до сих пор здесь. (Без класса "Link". Я только что добавил класс Entry get_absolute_url, и внезапно у меня появляется "Caught TypeError при рендеринге: unhashable type: 'dict '"ошибка при попытке перейти на страницу администратора. Скриншот того, о чем я говорю. Я никогда ничего не изменял в этом файле, показанном в ошибке :(. Что мне делать с этим?

РЕДАКТИРОВАТЬ: ошибка произошла после добавления этого:

def get_absolute_url(self):
    return ('coltrane_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
                                           'month': self.pub_date.strftime("%b").lower(),
                                           'day': self.pub_date.strftime("%d"),
                                           'slug': self.slug })
get_absolute_url = models.permalink(get_absolute_url)

Это от urls.py:

urlpatterns = patterns('django.views.generic.date_based',
    (r'^$', 'archive_index', entry_info_dict, 'coltrane_entry_archive_index'),
    (r'^(?P<year>\d{4})/$', 'archive_year', entry_info_dict, 'coltrane_entry_archive_year'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/$', 'archive_month', entry_info_dict, 'coltrane_entry_archive_month'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$', 'archive_day', entry_info_dict, 'coltrane_entry_archive_day'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/?(?P<slug>[-\w]+)/$', 'object_detail', entry_info_dict, 'coltrane_entry_detail'),
)

Ответы [ 4 ]

3 голосов
/ 12 февраля 2011

Извините, но ваш код не загружается в данный момент.

Насколько я понимаю, вы, вероятно, пытаетесь использовать dict экземпляр в качестве dict ключа Например, вы не можете сделать это:

a = {'1' : 'one'}
b = {a : 'two'}
1 голос
/ 12 февраля 2011

Можете ли вы показать мне строку в вашем URLconf, в которой назван URL coltrane_entry_detail?По крайней мере один старый билет на djangoproject.com предполагает, что ошибка может быть вызвана неверно сконфигурированным шаблоном URL, и если вы только что добавили метод get_absolute_url для своей модели, я предполагаю, что у вас также может бытьтолько что добавил именованный вид, к которому он относится?

0 голосов
/ 16 марта 2015

Некоторое время это происходит, когда мы используем экземпляр HTTPResponse, вставленный в метод визуализации


Например: в моем случае

return HttpResponse(request, 'doctor_list.html', {'list': doctor_list})

Это удалить с

return render(request, 'doctor_list.html', {'list': doctor_list})

0 голосов
/ 12 февраля 2011

Есть ли у вас настройки окружения django с помощью pip и virtualenv?Ваш проект имеет следующие зависимости:

markdown==2.0.3
django-tagging==0.3.1

Я поместил вышеупомянутое в файл с именем requirements.txt на уровне вашего проекта.После того, как вы установили pip, virtualenv и создали уникальную среду для этого проекта, вы можете установить вышеуказанное как:

pip install -r requirements.txt

После предыдущей настройки вам нужно поместить tagging в INSTALLED_APPS вашегоsettings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.flatpages',
    'cms.search',
    'coltrane',
    'tagging',
)

Удалите файл базы данных cms.db и запустите python manage.py sycndb.Вам нужно будет предоставить имя пользователя и пароль для суперпользователя.Код работает нормально на моем конце, и я могу получить доступ к администратору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...