【发布时间】:2020-03-07 19:01:13
【问题描述】:
在应用程序 models.py 中,我使用 get_absolute_url 使用不同应用程序 urls.py 中的“名称”反转到特定路径。
但是我当然会遇到错误,因为我没有为该应用创建 urls.py,因为 urlpattern 已经存在于其他一些 urls.py 中。
那么有没有可以反向使用的 include(app.urls) 类型的功能?
#app: A - urls.py
urlpatterns = [
path('post/<int:pk>/', PostDetailView.as_view(), name = 'post-detail'),
...
]
#app: B - models.py
def get_absolute_url(self):
return reverse('post-detail',kwargs = {'post_id.id':self.post_id.id})
【问题讨论】:
-
您是否将这些网址包含在您的基础应用程序中? stackoverflow.com/questions/15885030/django-include-app-urls
-
您遇到的错误是什么?
kwargs应该是kwargs={"pk": self.post_id.id},因为这是您的path()中的占位符。 -
@AKX 我收到了
NoReverseMatch:,我认为这是因为找不到 urlpattern,但它已经解决了你提到的同样问题。我给错了钥匙。非常感谢! -
@Shamika 不客气。 :) 顺便说一句,如果您有一个名称以
_id结尾的列,您的模型定义可能会有些问题。
标签: django django-urls