python - 映射 Django url 和视图
问题描述
伙计们,我是 Django 的新手,但我对一些事情有点了解。我需要有关网址的帮助。因此,在我的 models.py 中,我定义了类别、子类别和产品模型,所有这些模型字段都有一个 slugfield。我还设法定义了索引页面 url 及其工作,但是在我想要的索引页面之后,当用户单击类别链接时,他将能够看到类别下的子类别,并且当用户单击子类别时,他将能够查看子类别中的产品。因此,例如,我想创建一个像 www.127.0000/electronics 这样的网址,电子是类别,在电子产品下,用户将能够看到电视、微波等子类别...当用户点击电视的链接时,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
这是我的应用网址
urlpatterns= [
path('', views.index, name='Index'),
path('<slug:category_slug>/', views.category, name= 'Categories' )
视图.py 文件
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 时,我会看到衣服中的子类别,然后我点击和子类别,网址可能会更改为 127.000/clothes/men 衣服并显示男士产品衣服子类别。
解决方案
推荐阅读
- c - 将 exec() 的输出放入管道
- vue.js - 从 Vuetify 数据表单击时如何应用持久数据?
- google-chrome-extension - chrome.storage.sync 无法设置和获取
- sql - 选择除重复列之外的所有列,除非列的字符串长度最长
- ipfs - 从 js-ipfs 中的哈希获取文件
- arrays - 在 3D 向量的子向量上使用 matlab 中的范数函数
- c++ - 'void *' to 'void (*) (bool)' 使用 ac ++ 编译器在 c 中编译文件时出现指针错误
- javascript - 无法解析“css-loader!autoprefixer-loader”
- php - 带有 preg_replace_callback 的正则表达式用于亵渎过滤器
- java - 如何将开关传递给我的 Android 应用程序以控制其在开发过程中的行为?