python - 通用详细视图视图必须使用 URLconf 中的对象 pk 或 slug 调用
问题描述
如何访问 urls.py 中的外键?
################models.py
...
class Category(models.Model):
title = models.CharField(verbose_name='TITLE', max_length=200)
slug = models.SlugField('SLUG', unique=True, allow_unicode=True, help_text='one word for title alias.')
...
def __str__(self):
return self.title
class Episode(models.Model):
category = models.ForeignKey("Category", verbose_name=("CATEGORY"), on_delete=models.CASCADE)
number = models.IntegerField().
...
meta:
...
def __str__(self):
...
def get_absolute_url(self):
return reverse("manga:episode_detail", kwargs={"slug": self.category.slug, "number": self.number})
#####################urls.py
...
# path('category/<slug:category.slug>/<int:number>', views.EpisodeDetailView.as_view(), name="episode_detail"),
]
#################views.py
...
class EpisodeDetailView(DetailView):
model = Episode
template_name = 'manga/episode_detail.html'
context_object_name = 'episode'
** **它抛出`通用细节视图 EpisodeDetailView 必须在 URLconf 中使用对象 pk 或 slug 调用。`**
我想看剧集的细节。但我不能...
我试过抛出查询集,但它不起作用......
如何访问 urls.py 中的外键?**
# def get_queryset(self):
# return Episode.objects.filter(category__slug=self.kwargs['lab'])
def get_queryset(self):
employee = Category.objects.get(slug=self.kwargs['slug'])
print(employee)
return Episode.objects.get(category=employee, number=self.kwargs['number'])
解决方案
问题似乎出现在您设计 url 模式的方式中。该错误确实建议您使用 object pk 或 slug 这意味着您可以尝试以更简单的方式设计它
urlpatterns = [
path('category/<slug>/', views.EpisodeDetailView.as_view(), name='episode_detail')
推荐阅读
- autodesk-forge - Autodesk Forge 设计自动化 API 和 Vault
- django - inlineformset - 递增 TOTAL_FORMS 给出 MultiValueDictKeyError
- javascript - 在for循环javascript中调用函数
- iis - 增加“连接超时(秒)”(IIS)有什么风险?
- c# - 如何按类型正确地将对象从 C# 传递到 VBScript?
- c# - 简单注入器注入 PageModel ASP.NET Core Razor 页面
- xml - 单个元素下的多个 xs:id 属性 - XSD 定义
- git - 如何使用 git log 显示远程 refs/notes/*
- reactjs - initialValues 为 true 的复选框正在显示而不检查刷新
- angular - 关于 Angular 引导