代码之家  ›  专栏  ›  技术社区  ›  Ashley

Django管理界面上的断开链接

  •  1
  • Ashley  · 技术社区  · 16 年前

    我目前正在阅读实用的Django项目,在Django管理界面中,输入信息时可以选择“查看站点”。

    但是在完成了本书的第5章之后,我开始修补管理界面,发现用我的分类应用程序点击这个链接是不起作用的,因为它没有将日志附加到URL,所以它们看起来像这样:

    http://127.0.0.1:8000/categories/test-cat
    

    当他们像这样的时候…

    http://127.0.0.1:8000/weblog/categories/test-cat
    

    不过,在我的参赛作品模型中,它们表现得很好。因此,我尝试查看“在条目中”应用程序中的正确内容,以找出“类别”应用程序中的错误内容。

    我找了大约2个小时了,我不知道姜戈是在哪里做的。我甚至从网上复制了源代码,尽管其中一些似乎丢失了。

    我的get_absolute_url()如下:

    def get_absolute_url(self):
        return "/categories/%s/" % self.slug
    

    我编辑:

    def get_absolute_url(self):
        return "/weblog/categories/%s/" % self.slug
    

    它解决了这个问题。

    我现在的问题是,为什么Entries应用程序不需要这个,而Categories应用程序需要这个?

    我的代码来自类条目:

    def get_absolute_url(self):
        return ('coltrane_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
                                            'month': self.pub_date.strftime("%b").lower(),
                                           'day': self.pub_date.strftime("%d"),
                                           'slug': self.slug })
    get_absolute_url = models.permalink(get_absolute_url)
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   Wolph    16 年前

    它使用 get_absolute_url() 模型上的方法。改变它,它就可以工作了:)

    [编辑] 对于编辑过的问题。 在你的分类模型中,你使用的是硬编码链接,而你在条目模型中使用的是永久链接。我建议你在这两个地方都用氯杀灵来解决这个问题。

    以下是有关如何使用它的文档: http://docs.djangoproject.com/en/dev/ref/models/instances/#the-permalink-decorator