Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 01.01.2015
Сообщений: 96

Цикл for, Page not found (404)

20.03.2017, 18:47. Показов 1701. Ответов 27

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть два models -
Python
1
2
3
4
5
6
7
8
9
10
11
class Category(models.Model):
    name = models.CharField(max_length=255, verbose_name='Название категории', default='')
    alias = models.SlugField(verbose_name='Alias категории', default='')
    image = models.ImageField(null=True, blank=True, upload_to='image/', verbose_name='Изображение')
 
    class Meta:
        verbose_name = "Категория"
        verbose_name_plural = "Категории"
 
    def __str__(self):
        return '%s' % self.name
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Items(models.Model):
    name = models.CharField(max_length=15, verbose_name='Название товара', default='')
    price = models.IntegerField(default=0, verbose_name='Цена')
    # image = models.CharField(max_length=255, verbose_name='Картинка', default='')
    image = models.ImageField(null=True, blank=True, upload_to='image/', verbose_name='Изображение')
    alias = models.SlugField(verbose_name='Alias товара', default='')
 
    category = models.ForeignKey(Category, default=None, blank=True, null=True)
 
    class Meta:
        verbose_name = "Товар"
        verbose_name_plural = "Товары"
 
    def __str__(self):
        return 'Товар %s' % self.name
Есть views -
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def products(request, alias):
    try:
        product = Items.objects.get(alias=alias)
        title = product.name
    except:
        raise Http404("Объект не найден")
 
    context = {
        'product': product,
        'title': title,
    }
 
    return render(request, 'product/product.html', context)
 
 
def get_category(request, alias):
    try:
        category = Category.objects.get(alias=alias)
        products = Items.objects.filter(category=category)
        title = category.name
    except:
        raise Http404('Объекты не найден')
    context = {
        'products': products,
        'category': category,
        'title': title,
    }
    return render(request, 'popular/popular.html', context)
 
 
def popular(request):
    try:
        title = 'Популярные'
        products = Items.objects.all()
        category = Category.objects.get()
    except:
        raise Http404('Объекты не найден')
    context = {
        'products': products,
        'category': category,
        'title': title,
 
    }
    return render(request, 'popular/popular.html', context)
urls -
Python
1
2
3
4
url(r'^admin/', admin.site.urls),
    url(r'^$', views.popular, name='popular'),
    url(r'^product/(?P<alias>[^/]+)', views.products, name='product'),
    url(r'^category/(?P<alias>[-\w]+)/$', views.get_category, name='get_category'),
Ну и шаблон, в котором, собственно и проблема -
HTML5
1
2
3
4
5
6
7
8
9
10
<ul>
                            {% for category in get_category %}
                                <li>
                                    <a href="{% url 'get_category' category.alias %}">
                                        <img src="{{ MEDIA_URL }}{{ category.image.url }}" alt="">
                                        <ctgname>{{ category.name }}</ctgname>
                                    </a>
                                </li>
{% endfor %}
                        </ul>
Вообщем проблема заключается в том, что когда добавляю цикл for то выдаёт ошибку - Page not found (404), shop.views.popular. Но если я ввожу category/alias(в смысле из БД) то всё фильтрует.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2017, 18:47
Ответы с готовыми решениями:

Page not found (404)
Добрый день! такая ошибка Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/articles/tags/ Raised...

Admin Django Page not found (404)
Здравствуйте! У меня возник такой вот вопросик. Ошибка возникла после регистрации модели в приложении. Прикладываю собственно код. ...

Page not found (404) Djnago отправка формы
Когда отправляю форму, чтобы добавить в базу данных вылетает ошибка. Если добавляю через админ панель то все норм. views: from...

27
0 / 0 / 2
Регистрация: 01.01.2015
Сообщений: 96
20.03.2017, 22:24  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ennjin Посмотреть сообщение
Потому что не стоит один и тот же шаблон передавать в разные представления
Ну смотрите: в get_category: products = Items.objects.filter(category=category), в popular: products = Items.objects.all(), нужно просто products тот что в get_category как-то переименовать и вставить в popular?
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
20.03.2017, 22:26
50VAJJ,
Нет, я про вот это
Python
1
return render(request, 'product/product.html', context)
Вы один и тот же html шаблон передаете в две разные функции
0
0 / 0 / 2
Регистрация: 01.01.2015
Сообщений: 96
20.03.2017, 22:30  [ТС]
Цитата Сообщение от Ennjin Посмотреть сообщение
50VAJJ,
Нет, я про вот это
Python
1
return render(request, 'product/product.html', context)
Вы один и тот же html шаблон передаете в две разные функции
Да, то-есть их нужно объединить в один?
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
20.03.2017, 22:33
Цитата Сообщение от 50VAJJ Посмотреть сообщение
Да, то-есть их нужно объединить в один?
Должно быть 2 разных шаблона, для каждой функции свой шаблон.
А эта ошибка говорит,
TypeError at /
popular() missing 1 required positional argument: 'alias'

что функция popular не нашла 1 обязательный аргумент
0
0 / 0 / 2
Регистрация: 01.01.2015
Сообщений: 96
20.03.2017, 22:38  [ТС]
Добавлено через 3 минуты
Цитата Сообщение от Ennjin Посмотреть сообщение
Должно быть 2 разных шаблона, для каждой функции свой шаблон.
Стоп. Так у меня на главной и категории, слева, в сайдбаре и продукты в контейнере, как тогда разные шаблоны делать?
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
20.03.2017, 22:41
Разобрался. Вы добавили в функцию popular аргумент alias
Python
1
def popular(request, alias):
Но в url его не внесли
Python
1
url(r'^$', views.popular, name='popular'),
Отсюда и ошибка.
Но шаблоны все равно лучше использовать разные для каждого представления.
0
0 / 0 / 2
Регистрация: 01.01.2015
Сообщений: 96
20.03.2017, 22:47  [ТС]
Цитата Сообщение от Ennjin Посмотреть сообщение
Разобрался. Вы добавили в функцию popular аргумент alias
Python
1
def popular(request, alias):
Но в url его не внесли
Python
1
url(r'^$', views.popular, name='popular'),
Отсюда и ошибка.
Но шаблоны все равно лучше использовать разные для каждого представления.
Но его же не так нужно вносить - (?P<alias>[^/]+)?
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
20.03.2017, 22:48
Цитата Сообщение от 50VAJJ Посмотреть сообщение
Но его же не так нужно вносить - (?P<alias>[^/]+)?
Я и не сказал как, я лишь указал на ошибку.
А вносить так, как вы написали
Только в зависимости от того, из чего состоит строка, нужно правильно составить регулярное выражение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2017, 22:48

Page not found (404) - таков результат запроса
Не могу реализовать запрос: Вот мой urls.py url(r'^entry/tags/(?P&lt;pk&gt;\d+)/$', views.marker_view, name = 'marker') запрос...

Laravel 404 Page - Ошибка
Доброго времени суток. Такая проблема. При переходе на страницу, которой на сайте нет, должно показываться соответствующее уведомление, оно...

Page not Found
Ситуация несколько нелепая, скажем так, был в свое время у меня сайт написанный на самопальном движке(smarty+php) не буду вдаваться в...

Page Not Found (Yahoo!)
После некоторого времени кликаний ссылок практически все ссылки не открываются, вместо них открывается Yahoo - Page Not Found. Помогает...

404 Not Found
Здравствуйте! Залил сайт на хостинг, всё работает, только вот не заходит в админку, по адресу http://адрес_сайта/admin.php выдаёт ошибку: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru