django - url中有两个slug
问题描述
我想要一个需要 2 个 slug 的 url 模式。我试图让它看起来像http://127.0.0.1:8000/category/model
,但我很难理解如何做到这一点。
以下是我到目前为止的内容:
模型.py
def model_detail_view(request, category_slug, model_slug):
model = Model.objects.get(
category__slug=category_slug, model_slug=model_slug)
context = {
"model": model,
}
return render(request=request, template_name='main/model_detail.html', context=context)
网址.py
path("<str:category_slug>/<str:model_slug>/", views.model_detail_view, name="model_detail_view"),
模型.py
class Category(models.Model):
title = models.CharField(max_length=50)
featured_image = models.ImageField(upload_to="categories")
category_slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='title')
class Meta:
verbose_name_plural = "Categories"
def __str__(self):
return self.title
class Model(models.Model):
title = models.CharField(max_length=80)
category = models.ManyToManyField(Category)
featured_image = models.ImageField(upload_to=image_dir)
model_slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='title')
class Meta:
verbose_name_plural = "Models"
def __str__(self):
return self.title
解决方案
尝试这个,
model = model = Model.objects.get(category__category_slug=category_slug, model_slug=model_slug)
参考:
推荐阅读
- powerbi - 前几个月的 Power BI 累计和
- swift - 使用 Swift Package Manager 的 Swift IOS 库无法编译
- winforms - ContextMenuStrip 中的嵌套子菜单
- gitlab - GitlabCI:触发管道
- c# - 复杂的 linq 语句 - 嵌套组/where/sum/select
- snakemake - 如何从 config.yaml 分配多个路径?
- scala - 2个案例类的匹配值
- angular - 在 primeNg 下拉列表中使用 overlayVisible 属性
- groovy - 在groovy中以修剪格式获取数据库日期
- javascript - 当我调整浏览器大小时,为什么我的 div 会重叠?