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

Django Menu z podkategoriami

0 głosów
45 wizyt
pytanie zadane 31 stycznia w Python, Django 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
2 odpowiedzi 95 wizyt
pytanie zadane 25 listopada 2016 w Python, Django przez redstar1 Bywalec (2,110 p.)
0 głosów
3 odpowiedzi 216 wizyt
pytanie zadane 6 listopada 2015 w Python, Django przez Kaspero Bywalec (2,010 p.)
0 głosów
2 odpowiedzi 49 wizyt
pytanie zadane 31 stycznia w Python, Django przez Skaze Nowicjusz (170 p.)

35,203 zapytań

71,424 odpowiedzi

136,504 komentarzy

17,073 pasjonatów

Przeglądających: 223
Pasjonatów: 13 Gości: 210

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...