我有一个包含年/月/日/ slug格式的网址结构
示例:2014 / Jan / 25 / Another_blog /
在我的模型中,我有一个get_absolute_url函数
def get_absolute_url(self):
# Format date to yyyy/mon/dd format
datestr = format_date(self.publication_date,'%Y/%b/%d')
slugstr = datestr + '/' + self.machine_name
return (str(slugstr))
网址的条目是
url(r'^(?P\d{4})/(?P[-\w]+)/(?P\d{1,2})/(?P[a-zA-Z0-9_-]+)/$',
PostDetails.as_view(), name='postdetails'),
在我看来,我正在用帮助者
返回记录
# Helper
def get_post(self, slug):
return Post.objects.get(machine_name=slug)
使用{{post.get_absolute_url}}在模板中使用它时效果很好
我想做的是使用reverse()
进行工作测试
def test_post_detail_view(self):
a = self.create_post()
url = reverse('postdetails')
resp = self.client.get(url)
self.assertEqual(resp.status_code, 200)
我试过了:
url = reverse(' postdetails',args = [a.machine_name])
url = reverse(' postdetails',kwargs = {' slug':a.machine_name})
但是我知道我没有正确的反向逻辑。
测试输出为:
"论证'%s'没找到。" %(lookup_view_s,args,kwargs)) NoReverseMatch:反向' postdetails'带参数
任何建议或指示都将受到赞赏..
答案 0 :(得分:1)
你需要给出所有四个args,例如
reverse("postdetails", args=('2014', 'Jan', '25', a.machine_name))