Отображение Django URL-адресов и просмотров - PullRequest
0 голосов
/ 01 мая 2020

Ребята, я новичок в Django, но я немного разбираюсь в нескольких вещах. Мне нужна помощь с URL. Таким образом, в моем models.py я определил категорию, подкатегорию и модель продукта, и все эти поля моделей получили слагфилд. Мне также удалось определить URL страницы индекса и ее работу, но после страницы индекса я хочу, когда пользователь нажимает на ссылку категории, он сможет видеть подкатегории, которые находятся под категориями, и когда пользователь нажимает на подкатегории, он может смотреть продукты в подкатегории. Так, например, я хотел бы создать URL-адрес, такой как www.127.0000/electronics, electronics - это категория , и под электроникой пользователь сможет видеть подкатегории like телевизоры, микроволновые печи ... когда пользователь нажимает на ссылку телевизора, URL будет www.127.0000/electronics/tvs, и на этой странице пользователь увидит продукты. Это мой models.py

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

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

    def __str__(self):
        return self.name

class SubCategory (models.Model):
    name = models.CharField(max_length= 200)
    slug = models.SlugField (max_length= 200, unique= True)
    category= models.ForeignKey(Category, on_delete= models.CASCADE)

    class Meta:
        ordering = ('name',)
        verbose_name= "SubCategory"
        verbose_name_plural= 'SubCategories'

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250)
    price = models.DecimalField(max_digits=10 , decimal_places=2)
    image = models.ImageField(max_length=20, blank= True)
    subcategory = models.ForeignKey(SubCategory, on_delete= models.CASCADE)

    class Meta:
        ordering = ('name',)
        verbose_name= 'product'
        verbose_name_plural = 'products'

    def __str__(self):
        return self.name

, и это URL моего приложения

urlpatterns= [
    path('', views.index, name='Index'),
    path('<slug:category_slug>/', views.category, name= 'Categories' )

views.py file

def index (request):
    """"Defines homepage"""
    return render (request, 'index.html')

def category (request, category_slug):
     """Defines categories slug"""
    categories= get_object_or_404(Category, slug=category_slug)
    context= {'categories': categories}
    return render (request, 'category.html', context} 

это моя категория html gile

{% extends 'base.html' %}

{% block content %}

<p>
    <ul>
    {% for category in categories %}
    <li> {{category}} </li>
    {% empty %}
    <li> No Category has been added yet</li>
    {% endfor %}
</ul>
</p>

{% endblock content %}

Не могли бы вы указать правильное направление, чтобы при нажатии на www.127.0000/clothes я видел подкатегории в одежде, а при нажатии и в подкатегориях URL-адрес изменялся на 127.000 / одежда / мужская одежда и показ продуктов в подкатегории мужской одежды.

...