我有一个具有架构的django应用程序:
Myapp.com/< uniquepageURL>
用于向页面发布新内容:
Myapp.com/< uniquepageURL>/post
评论页面上的特定帖子
Myapp.com/< uniquepageURL>/comment< ID# of the post>
例如,如果您评论存储在ID为22的数据库中的帖子,则URL应如下所示:
Myapp.com/< uniquepageURL>/comment22
这就是我决定映射我的网址的方式。有更好/更简单的方法吗? < uniquepageURL>
也是我模型中post对象的ForeignKey。我遇到的问题是弄清楚如何在django中使用请求函数来查看url是什么,以便从中获取信息,即对于来自哪个唯一页面的帖子,这样我就可以将值保存到foreignkey字段中对于发布ID的评论,这是评论。每个人的观点会是什么样子?
这是我的urls.py.
对于帖子:
url(r'^(?P<uniquepageURL>[a-zA-Z0-9_.-]*)/post/$', views.post, name='post')
征求意见:
url(r'^(?P<uniquepageURL>[a-zA-Z0-9_./-]*)/comment(?P<post.pk>[0-9]*)/$', views.comment, name='comment')name='comment')ts:
我认为post.pk部分是错误的,因为它返回错误。但是,如果我能弄清楚如何让帖子部分至少起作用,我可以自己解决这个问题。
答案 0 :(得分:1)
请注意?P<uniquepageURL>
语法表示命名组; Django将尝试将该名称与view函数中的参数匹配(请参阅https://docs.djangoproject.com/en/1.7/topics/http/urls/#named-groups)。
因此,要将该值传递给view函数,只需包含参数uniquepageURL
即可。请注意,post.pk
表示名称不起作用;考虑post_id
作为替代方案。 (虽然我认为您可以使用**kwargs
构造并使用kwargs['post.pk']
获取值。
也就是说,如果您确实需要请求网址中的其他信息,我认为您要查找的值为request.path
(假设您的签名为def comment(request, uniquepageURL, post_id)
或类似。