django - 在 Django 3 的一个 URL 路径中添加多个 slug
问题描述
我想在一个 URL 路径中添加多个 slug,如下所示:
path('<slug:firstslug>/<slug:secondslug>/<slug:thirdslug>/', views.mydetailview, name='detailview')
我尝试了很多方法,但没有奏效。我想使用普通的基于类的视图。所有蛞蝓都来自同一应用程序的同一型号。
解决方案
以下解决方案对我有用;
我的应用程序>models.py:
class Model(models.Model):
constructor = models.ForeignKey(Constructor, on_delete=models.CASCADE)
model_name = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=250, unique=True)
model_image = models.ImageField(upload_to='photos',
blank=True)
我们需要定义一个函数来接收所需的 slugs 作为参数
def get_version(self):
return reverse('selected_versions', args=[self.constructor.slug,
self.slug])
我的应用程序>views.py:
def selected_versions(request, constructor_slug=None, model_slug=None):
constructors = None
models = None
versions = None
if (constructor_slug != None and model_slug != None):
constructors = get_object_or_404(Constructor, slug=constructor_slug)
models =get_object_or_404(Model, slug=model_slug)
versions=Version.objects.filter(constructor=constructorsi,
model=models)
else:
versions=Version.objects.all()
context={
'version': versions,
}
return render(request, 'versions.html', context)
我的应用 > urls.py:
urlpatterns = [
path('<slug:constructor_slug>/<slug:model_slug>/', views.selected_versions,
name='selected_versions'),
]
推荐阅读
- wordpress - 如何在 Wordpress 中修复图像间距
- mysql - 使用 --input-lines-terminated-by=":" 导出 sqoop 不起作用
- python-3.x - 如何调整 PairGrid 图的个别属性?
- mysql - 描述内部连接输出的恰当术语
- c++ - 替换常量:何时使用静态 constexpr 和内联 constexpr?
- r - read.socrata 将所有变量格式化为字符
- php - 更改登录重定向
- javascript - 无法计算我的 javascript 代码中不同输出的迭代次数
- javascript - 无法在其初始化程序中引用参数“initialState”
- reactjs - 默认排序表 ui-semantic React