Django:如何在urlpatterns中访问其他模型的主键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:如何在urlpatterns中访问其他模型的主键?相关的知识,希望对你有一定的参考价值。
路由到特定路径时,我得到NoReverseMatch
。
在获取所有其他类似路径的结果时,无法仅找到一个urlpattern的主键<int:pk>
。
我假设这个错误是因为这里的模型不同,例如,
没有错误:
class PostUpdateView():
model = A
我得到的错误是由于:
class AddCommentView():
model = B
urlpatterns = [
path('post/<int:pk>/update/', PostUpdateView.as_view(), name = 'post-update'),
path('post/<int:pk>/comment', AddCommentView.as_view(), name = 'post-comment')]
两个类都在同一个[[views.py文件中,因为我在路由URL中需要模型A的主键,以便可以返回到原始页面。
错误:Reverse for 'post-comment' with no arguments not found. 1 pattern(s) tried: ['post/(?P<pk>[0-9]+)/comment$']
将两个模型的键包含在同一路径中的正确方法是什么?注意:A的主键作为外键出现在B中。
答案
您的get_absolute_url
方法应类似于kwargs
参数。from django.urls import reverse
class AddCommentView():
model = B
def get_absolute_url(self):
return reverse('post-comment', kwargs={'pk': self.pk})
以上是关于Django:如何在urlpatterns中访问其他模型的主键?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django URLpatterns 中发送请求方法?
如何在 HTML 模板中访问 Django URL 参数 /<thing>/?
python_django_urls模块与views模块请求访问过程