【发布时间】: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