如何请求访问过的上一个页面的URL并将其部分存储为ForeignKey



我有一个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是什么,以便从中获得信息,即对于来自哪个uniquepage的帖子,我可以将值保存到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部分是错误的,因为它返回了一个错误。但如果我能至少弄清楚如何让后期工作,我希望自己能解决这个问题。

请注意,?P<uniquepageURL>语法表示一个命名组;Django将尝试将该名称与view函数中的参数相匹配(请参阅https://docs.djangoproject.com/en/1.7/topics/http/urls/#named-组)。

因此,要将该值传递给视图函数,只需包含一个参数uniquepageURL。注意,这意味着post.pk不能作为名称使用;考虑CCD_ 5作为替代方案。(尽管我认为您可以使用**kwargs构造并使用kwargs['post.pk']获取值)。

也就是说,如果你确实需要来自请求URL的其他信息,我认为你要寻找的值是request.path(这假设你的签名是def comment(request, uniquepageURL, post_id)或类似的。

最新更新