Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 19, 2017 23:28:38

id_admin
Зарегистрирован: 2017-09-17
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка Объект не итерируется

Помогите разобрать Не пойму в чем дело Выдает ошибку,
выборка MyAotoId.objects.all() работает
а get_object_or_404(MyAotoId, pk=one_id) кидает ошибку

 models:
class MyAotoId(models.Model):
    class Meta():
        db_table = 'myautoid_app'
        verbose_name = u'Выборка по id'
    title_myautoid = models.CharField(max_length=128, blank=True, null=True, verbose_name='Текст заголовка')
    text_myautoid = models.TextField(blank=True, null=True, verbose_name='Тексе')
    def __unicode__(self):
        return self.title_myautoid

 views:
def allfields_all(request):
    te = MyAotoId.objects.all()
    return render_to_response('allfields_all/allfields_all.html', {'te': te})
def allfields_one(request, one_id):
    one = get_object_or_404(MyAotoId, pk=one_id)
    return render(request, 'allfields_one/allfields_one.html', {'one': one})

 urls: Проекта
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('index.urls')),
    url(r'^fields/', include('index.urls')),
]

 urls: Приложения
url(r'^$', views.index, name='index'),
    url(r'^$', views.allfields_all),
    url(r'^(?P<one_id>\d+)/$', views.allfields_one),
]

Ошибка:
Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/fields/2/

Django Version: 1.11.5
Python Version: 2.7.13
Installed Applications:
['django.contrib.admin',
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘index’]
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.middleware.common.CommonMiddleware’,
‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’]


Template error:
In template D:\Django_Projeckt\woodaura_working\templates\index.html, error at line 0
‘MyAotoId’ object is not iterable 1 : {% load staticfiles %}
2 :
3 :
4 :
5 : <!DOCTYPE html>
6 : <html lang=“en”>
7 :
8 : <head>
9 :
10 : <meta charset=“utf-8”>


Traceback:

File “D:\Envs\woodaura2713_11\lib\site-packages\django\core\handlers\exception.py” in inner
41. response = get_response(request)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\core\handlers\base.py” in _get_response
187. response = self.process_exception_by_middleware(e, request)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\core\handlers\base.py” in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File “D:\Django_Projeckt\woodaura_working\index\views.py” in allfields_one
17. return render(request, ‘allfields_one/allfields_one.html’, {'one': one})

File “D:\Envs\woodaura2713_11\lib\site-packages\django\shortcuts.py” in render
30. content = loader.render_to_string(template_name, context, request, using=using)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\loader.py” in render_to_string
68. return template.render(context, request)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\backends\django.py” in render
66. return self.template.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render
207. return self._render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in _render
199. return self.nodelist.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render
990. bit = node.render_annotated(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render_annotated
957. return self.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\loader_tags.py” in render
177. return compiled_parent._render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in _render
199. return self.nodelist.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render
990. bit = node.render_annotated(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render_annotated
957. return self.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\loader_tags.py” in render
72. result = block.nodelist.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render
990. bit = node.render_annotated(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\base.py” in render_annotated
957. return self.render(context)

File “D:\Envs\woodaura2713_11\lib\site-packages\django\template\defaulttags.py” in render
172. values = list(values)

Exception Type: TypeError at /fields/2/
Exception Value: ‘MyAotoId’ object is not iterable

Отредактировано id_admin (Сен. 19, 2017 23:32:48)

Офлайн

#2 Сен. 20, 2017 02:22:47

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Ошибка Объект не итерируется

Вероятно, что проблема в шаблоне allfields_one/allfields_one.html, у вас там, скорее всего есть цикл for:

 {%for item in one%}
some html code here... 
{%endif%}
В случае с “te” подобная конструкция срабатывает, т.к. вы передаете queryset, а здесь один объект…

Отредактировано scidam (Сен. 20, 2017 02:23:05)

Офлайн

#3 Сен. 20, 2017 08:33:29

id_admin
Зарегистрирован: 2017-09-17
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка Объект не итерируется

scidam СПАСИБО вам большое так и было +++

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version