• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Django Menu z podkategoriami

VPS Starter Arubacloud
0 głosów
282 wizyt
pytanie zadane 31 stycznia 2017 w Python przez Skaze Nowicjusz (170 p.)

Udało mi się wyświetlić Kategorie z modelu categories. (wyświetliło się Męskie i Damskie)

Teraz chciałbym zrobić żeby po wciśnięciu na Męskie przekierowało do strony gdzie będą podkategorie i na niej będą wyświetlane produkty.

class Category(models.Model):
    name = models.CharField(max_length=200,
                            db_index=True)
    slug = models.SlugField(max_length=200,
                            db_index=True)

    class Meta:
        ordering = ('name',)
        verbose_name = 'category'
        verbose_name_plural = 'categories'

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('shop:product_list_by_category',
                       args=[self.slug])

class SubcategoryMan(models.Model):
    category = models.ForeignKey(Category,
                                 related_name='subcategorymans')
    name = models.CharField(max_length=200,
                            db_index=True)
    slug = models.SlugField(max_length=200,
                            db_index=True)

    def __str__(self):
        return self.name

class ProductMan(models.Model):
    category = models.ForeignKey(SubcategoryMan,
                                 related_name='productsman')
    name = models.CharField(max_length=200,
                            db_index=True)
    slug = models.SlugField(max_length=200,
                            db_index=True)
    image = models.ImageField(upload_to='productsman/%Y/%m/%d',
                              blank=True)
    description = models.TextField(blank=True)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    stock = models.PositiveIntegerField()
    available = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ('name',)
        index_together = (('id', 'slug'),)

    def __str__(self):
        return self.name

    #def get_absolute_url(self):
     #   return reverse('shop:product_detail',
      #                 args=[self.id, self.slug])

 

def product_list(request, category_slug=None):
    category = None
    categories = Category.objects.all()
    products = ProductMan.objects.filter(available=True)
    if category_slug:
        category = get_object_or_404(Category, slug=category_slug)
        products = products.filter(category=category)
    return render(request,
                  'shop/product/list.html',
                  {'category': category,
                   'categories': categories,
                   'products': products})

 

urlpatterns = [
    url(r'^$', views.product_list, name='product_list'),
    url(r'^(?P<category_slug>[-\w]+)/$',
        views.product_list,
        name='product_list_by_category')
]

 

a to jest szablon

{% extends "shop/base.html" %}
{% load static %}

{% block content %}

    <ul>
        <li>
            <a href="{% url 'shop:product_list' %}">Wszystkie</a>
        </li>
        {% for c in categories %}
            <li>
                <a href="{{c.get_absolute_url}}">{{c.name}}</a>
            </li>
        {% endfor %}
    </ul>

{% endblock %}

 

wiem że muszę stworzyć jeszcze url i funkcje do wyświetlania produktów ale teraz mnie interesuje co zrobić żeby przekierowało na podkategorie. Szuka i myślę i nie mogę wpaść na nic

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 80 wizyt
pytanie zadane 13 grudnia 2019 w Python przez Dawid89 Obywatel (1,120 p.)
0 głosów
1 odpowiedź 75 wizyt
0 głosów
0 odpowiedzi 146 wizyt
pytanie zadane 18 czerwca w Python przez Iei Bywalec (2,010 p.)

93,028 zapytań

141,991 odpowiedzi

321,294 komentarzy

62,375 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...