【发布时间】:2020-08-18 19:00:43
【问题描述】:
在我的应用程序中,有一个具有 ForeignKey 关系的类别和子类别列表。说,有:
- 与 Category1 相关的 Subcategory1
- 与 Category2 相关的 Subcategory2
我希望获得以下子类别网址:
这些网址工作正常。但是,django 也会生成这些我不需要的 url:
为什么它们会出现在我的应用中?我该如何摆脱它们?提前致谢!
models.py:
class Category(models.Model):
categoryslug = models.SlugField(max_length=200, default="",unique=True)
def get_absolute_url(self):
return reverse("showrooms_by_category",kwargs={'categoryslug': str(self.categoryslug)})
class Subcategory(models.Model):
subcategoryslug = models.SlugField(max_length=200, default="",unique=True)
category = models.ForeignKey('Category', related_name='subcategories',
null=True, blank=True, on_delete = models.CASCADE)
def get_absolute_url(self):
return reverse("showrooms_by_subcategory",
kwargs={'categoryslug': str(self.category.categoryslug), 'subcategoryslug': str(self.subcategoryslug)})
views.py:
class ShowroomCategoryView(DetailView):
model = Category
context_object_name = 'showrooms_by_category'
template_name = "website/category.html"
slug_field = 'categoryslug'
slug_url_kwarg = 'categoryslug'
class ShowroomSubcategoryView(DetailView):
model = Subcategory
context_object_name = 'showrooms_by_subcategory'
template_name = "website/subcategory.html"
slug_field = 'subcategoryslug'
slug_url_kwarg = 'subcategoryslug'
urls.py:
urlpatterns = [
path('<slug:categoryslug>/<slug:subcategoryslug>/', views.ShowroomSubcategoryView.as_view(), name='showrooms_by_subcategory'),
path('<slug:categoryslug>/', views.ShowroomCategoryView.as_view(), name='showrooms_by_category'),
]
【问题讨论】:
-
“生成”是什么意思? Django 尝试解析路径:如果它解析了无效的 cat-subcat 组合的路径,只需在视图中引发
Http404。 -
感谢您的建议,我会研究这个。如果您能给我一点提示,我将不胜感激。我应该使用哪种方法?你能给我举个例子吗?
标签: python django django-urls