【问题标题】:Broken Link On Django Admin InterfaceDjango 管理界面上的链接断开
【发布时间】:2023-08-02 01:40:01
【问题描述】:

我目前正在阅读 Practical Django Projects,在 Django 管理界面中,输入信息时有一个“现场查看”选项。

但是在完成本书的第 5 章后,我开始修改管理界面,发现使用我的类别应用程序单击此链接不起作用,因为它没有将 weblog 附加到 URL,所以它们看起来像这样:

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

什么时候他们应该是这样的......

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

但是在我的条目模型上,它们运行良好。因此,我尝试查看 Entries 应用程序中的正确之处,以找出 Categories 应用程序中的错误之处。

我一直在寻找大约 2 个小时,但我无法确定 Django 在哪里执行此操作。我什至从网上复制了源代码,尽管其中一些似乎丢失了。

我的 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)

【问题讨论】:

    标签: python django django-admin django-urls


    【解决方案1】:

    它在模型上使用get_absolute_url() 方法。改变它,它应该可以工作:)

    [编辑] 对于已编辑的问题。 在您的类别模型中,您使用的是硬编码链接,而在条目模型中使用的是永久链接。我建议您在两个位置都使用永久链接来解决问题。

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

    【讨论】:

      最近更新 更多