小编San*_*ack的帖子

如何在DetailView中引用pk

嗨,我确信这有一个简单的解决方案,但我找不到它!必须一直需要它!

为了学习 django,我正在编写一个简单的应用程序来记录我的学习点。所以我有两个模型:

class Topic(models.Model):
    title = models.CharField(max_length=40)

    def __unicode__(self):
        return self.title

    class Meta():
        ordering = ['title']


class Fact(models.Model):
    note = models.CharField(max_length=255)
    topic = models.ForeignKey('Topic')

    def __unicode__(self):
        return self.note

    class Meta():
        ordering = ['note']
Run Code Online (Sandbox Code Playgroud)

我有模板和网址,将列出所有主题。

当我看到该列表时,我希望能够单击它[我可以这样做]并拥有该主题以及与其链接的所有事实(尽管外键出现)[技术上是否会被描述为子级的过滤查询集对象?] 我正在使用详细视图。

网址

 url(r'^(?P<pk>\d+)/$', TopicDetailView.as_view(), name='facts'),
Run Code Online (Sandbox Code Playgroud)

这是详细视图的代码。我知道它知道 pk,因为当我取出额外上下文过滤器(并且只需使用 .all())时,它会显示正确的页面。但无论我尝试多少种方法,我都无法引用它。我想要这样的东西...

class TopicDetailView(DetailView):
    model = Topic
    template_name = 'study/topic_facts.html'

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(TopicDetailView, self).get_context_data(**kwargs)
        # Add in a QuerySet of all the books

        context['fact_list'] = …
Run Code Online (Sandbox Code Playgroud)

django filter primary-key detailview

4
推荐指数
1
解决办法
2996
查看次数

标签 统计

detailview ×1

django ×1

filter ×1

primary-key ×1