Цикл for, Page not found (404) - Python
Формулировка задачи:
Здравствуйте.
Есть два models -
Есть views -
urls -
Ну и шаблон, в котором, собственно и проблема -
Вообщем проблема заключается в том, что когда добавляю цикл for то выдаёт ошибку - Page not found (404), shop.views.popular. Но если я ввожу category/alias(в смысле из БД) то всё фильтрует.
Листинг программы
- 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
Листинг программы
- 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
Листинг программы
- 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)
Листинг программы
- 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'),
Листинг программы
- <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)»
textual
Листинг программы
- def products(request, alias):
- product = Items.objects.get(alias=alias)
- title = product.name
- context = {
- 'product': product,
- 'title': title,
- }
- return render(request, 'product/product.html', context)
- def get_category(request, alias):
- category = Category.objects.filter(alias=alias)
- products = Items.objects.filter(category=category)
- title = category.name()
- context = {
- 'products': products,
- 'category': category,
- 'title': title,
- }
- return render(request, 'popular/popular.html', context)
- def popular(request, alias):
- title = 'Популярные'
- products = Items.objects.all()
- category = Category.objects.filter(alias=alias)
- context = {
- 'products': products,
- 'category': category,
- 'title': title,
- }
- return render(request, 'popular/popular.html', context)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д