LINUX.ORG.RU

Django и NoneType object is not callable


0

0

Получаю ошибку указанную в названии темы.

Мой staticus/models.py

# -*- coding: utf-8 -*-
from django.db import models

class Body(models.Model):
point = models.TextField('оглавление', help_text = 'здесь пишите вопрос, если пишите для faq')
description = models.TextField('содержание', help_text = 'ответ на вопрос, если faq')
order = models.IntegerField('порядок', help_text = 'в каком порядке отображать', default = 0)
body_type = models.ForeignKey('BodyType', verbose_name = 'тип', help_text = 'например: faq, rules и т.д.')

def __unicode__(self):
return self.body_type

class Meta:
verbose_name = «вопрос»
verbose_name_plural = «вопросы»
ordering = ['order']

class BodyType(models.Model):
name = models.CharField('название', help_text = 'максимум 50 символов', max_length = 50)
link = models.CharField('ссылка', help_text = 'максимум 200 симоволов. Писать только латинскими литерами и цифрами', max_length= 200)

def __unicode__(self):
return self.name

class Meta:
verbose_name = «тип»
verbose_name_plural = «типы»
ordering = ['name']

Получаю ошибку такого содержания:

Environment:

Request Method: GET
Request URL: http://localhost:8080/admin/staticus/body/
Django Version: 1.1.1
Python Version: 2.6.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'djanime.posting',
'djanime.staticus',
'djanime.menu']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.locale.LocaleMiddleware')


Template error:
In template /usr/lib/python2.6/site-packages/django/contrib/admin/templates/admin/change_list.html, error at line 78
Caught an exception while rendering: 'NoneType' object is not callable
68 : {% endif %}
69 : {% endblock %}
70 :
71 : <form action=«» method=«post»{% if cl.formset.is_multipart %} enctype=«multipart/form-data»{% endif %}>
72 : {% if cl.formset %}
73 : {{ cl.formset.management_form }}
74 : {% endif %}
75 :
76 : {% block result_list %}
77 : {% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %}
78 : {% result_list cl %}
79 : {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
80 : {% endblock %}
81 : {% block pagination %}{% pagination cl %}{% endblock %}
82 : </form>
83 : </div>
84 : </div>
85 : {% endblock %}
86 :
Traceback:
File «/usr/lib/python2.6/site-packages/django/core/handlers/base.py» in get_response
92. response = callback(request, *callback_args, **callback_kwargs)
File «/usr/lib/python2.6/site-packages/django/contrib/admin/options.py» in wrapper
226. return self.admin_site.admin_view(view)(*args, **kwargs)
File «/usr/lib/python2.6/site-packages/django/views/decorators/cache.py» in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File «/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py» in inner
186. return view(request, *args, **kwargs)
File «/usr/lib/python2.6/site-packages/django/contrib/admin/options.py» in changelist_view
986. ], context, context_instance=context_instance)
File «/usr/lib/python2.6/site-packages/django/shortcuts/__init__.py» in render_to_response
20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File «/usr/lib/python2.6/site-packages/django/template/loader.py» in render_to_string
108. return t.render(context_instance)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
178. return self.nodelist.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
779. bits.append(self.render_node(node, context))
File «/usr/lib/python2.6/site-packages/django/template/debug.py» in render_node
71. result = node.render(context)
File «/usr/lib/python2.6/site-packages/django/template/loader_tags.py» in render
97. return compiled_parent.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
178. return self.nodelist.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
779. bits.append(self.render_node(node, context))
File «/usr/lib/python2.6/site-packages/django/template/debug.py» in render_node
71. result = node.render(context)
File «/usr/lib/python2.6/site-packages/django/template/loader_tags.py» in render
97. return compiled_parent.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
178. return self.nodelist.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
779. bits.append(self.render_node(node, context))
File «/usr/lib/python2.6/site-packages/django/template/debug.py» in render_node
71. result = node.render(context)
File «/usr/lib/python2.6/site-packages/django/template/loader_tags.py» in render
24. result = self.nodelist.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
779. bits.append(self.render_node(node, context))
File «/usr/lib/python2.6/site-packages/django/template/debug.py» in render_node
71. result = node.render(context)
File «/usr/lib/python2.6/site-packages/django/template/loader_tags.py» in render
24. result = self.nodelist.render(context)
File «/usr/lib/python2.6/site-packages/django/template/__init__.py» in render
779. bits.append(self.render_node(node, context))
File «/usr/lib/python2.6/site-packages/django/template/debug.py» in render_node
81. raise wrapped

Exception Type: TemplateSyntaxError at /admin/staticus/body/
Exception Value: Caught an exception while rendering: 'NoneType' object is not callable

Непонятно в чем проблема. Данные занесены успешно, но отображаться не собирается. Где может быть ошибка?

Ответ на: комментарий от Shalakhin

Джанго... Ну это джанго, думаю понятно что я хочу сказать.

Давай взглянем подробнее на этот кусок кода:

{% block result_list %}
{% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %}
{% result_list cl %} 
{% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
{% endblock %}
Я давненько на джанго не кодил, но вижу здесь рекурсию. Чисто моя мысль: 1) {% block result_list %} Дефайнится блок с именем result_list, но пока содержимое пары(value) в словаре блоков равно None. 2) {% result_list cl %} Ты хочешь отрендерить блок с данным параметром, но как если код блока(или что там юзается) ещё не занесён в словарь блоков? Никак. 3) {% endblock %} Закрываешь блок, но оно тебя не спасёт.

Сразу отвечаю на вопрос что будет следующим: да, в джанге такие убогие темплейты.

И ещё, на будущее: Вот у тебя есть ошибка в one.py. Может следует скинуть именно one.py, а не stdio.h? Просто то что ты скинул здесь вообще не в тему.

tia
()
Ответ на: комментарий от tia

Теперь еще проще:
class Body(models.Model):
point = models.TextField()
description = models.TextField(blank = True)
order = models.IntegerField(default = 0, blank = True)

и этот код выдает ошибку в админке джанги тот же самый - NoneType object is not callable. Полностью идентичное сообщение получаю что и от вышеприведенного кода.

Shalakhin
() автор топика
Ответ на: комментарий от Shalakhin

Стоп. Тот код в темплейте точно рабочий? Если да, то попробуй удалить модели кроме нужной. Затем добавляй по полю.
Это называется «дебаг». Так ты точно узнаешь в какой строчке проблема.
Далее - пиши сюда, если не поймёшь проблему.

tia
()
Ответ на: комментарий от tia

Да, тот темлейт админки всегда нормально все обрабатывал (я его не менял).

Спасибо за подсказку - проблема в строке:

order = models.IntegerField(default = 0, blank = True)

Shalakhin
() автор топика
Ответ на: комментарий от Shalakhin

Все, исправил.

Стоило поменять название order на ordering (или какое-либо другое), как все заработало.

Shalakhin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.