【问题标题】:Generic detail view View must be called with either an object pk or a slug in the URLconf必须使用 URLconf 中的对象 pk 或 slug 调用通用详细视图视图
【发布时间】:2020-09-30 08:35:23
【问题描述】:

如何访问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'])

【问题讨论】:

    标签: python django


    【解决方案1】:

    问题似乎出现在您设计 url 模式的方式上。 该错误确实建议您使用 object pk 或 slug 这意味着您可以尝试以更简单的方式设计它

    urlpatterns = [
        path('category/<slug>/', views.EpisodeDetailView.as_view(), name='episode_detail')
    

    【讨论】:

      猜你喜欢
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多