首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从urls (<slug:slug1>/<slug:slug2>/)中的不同型号获取slug?

如何从urls (<slug:slug1>/<slug:slug2>/)中的不同型号获取slug?
EN

Stack Overflow用户
提问于 2019-02-11 05:28:02
回答 1查看 73关注 0票数 0

我正在尝试获取一个类似于WWW.domain.com/ slug1 /slug2的ur模式,其中slug1是要插入的外键。可以把它想象成library.com//。作者和书是两种不同的模式,都有自己的弹头。有没有一种方法可以将插件从作者导入到图书的详细视图中,然后在图书详细视图的urls中使用它?

这就是我想象的路径:

代码语言:javascript
复制
    path('brands/<slug:brand_slug>/<slug:model_slug>', views.Brand_ModelsDetailView.as_view(), name='model-detail'),

以下是我的模型:

代码语言:javascript
复制
class Brand(models.Model):
    brand_name = models.CharField(
        max_length=50, help_text='Enter the brand name',)  
    slug = AutoSlugField(populate_from='brand_name', default = "slug_error", unique = True, always_update = True,)


    def get_absolute_url(self):
        """Returns the url to access a particular brand instance."""
        return reverse('brand-detail', kwargs={'slug':self.slug})

    def __str__(self):
        return self.brand_name

class Brand_Models(models.Model):
    name = models.CharField(max_length=100)
    brand = models.ForeignKey('Brand', on_delete=models.SET_NULL, null=True)
    slug = AutoSlugField(populate_from='name', default = "slug_error_model", unique = True, always_update = True,)


    def get_absolute_url(self):
        """Returns the url to access a particular founder instance."""
        return reverse('model-detail', kwargs={'slug':self.slug})

    def __str__(self):
        return self.name

我目前在视图中的尝试:

代码语言:javascript
复制
class Brand_ModelsDetailView(generic.DetailView):
    model = Brand_Models


    def get_queryset(self):
        qs = super(Brand_ModelsDetailView, self).get_queryset()
        return qs.filter(
            brand__slug=self.kwargs['brand_slug'],
            slug=self.kwargs['model_slug']
        )

编辑:

代码语言:javascript
复制
class RefrenceDetailView(generic.DetailView):
   model = Refrence

   def get_queryset(self):
       qs = super(RefrenceDetailView, self).get_queryset()
       return qs.filter(
            brand__slug=self.kwargs['brand_slug'],
            model__slug=self.kwargs['model_slug'],
        slug = self.kwargs['ref_slug']
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 15:07:36

您的错误只是出现在Brand_Models的get_absolute_url方法上;因为详细的URL需要两个slug,所以您需要将它们都传递给reverse

代码语言:javascript
复制
return reverse('model-detail', kwargs={'brand_slug': self.brand.slug, 'model_slug':self.slug})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54621241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档