Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:获取反向的NoReverseMatch错误_Python_Django - Fatal编程技术网

Python Django:获取反向的NoReverseMatch错误

Python Django:获取反向的NoReverseMatch错误,python,django,Python,Django,获取错误: NoReverseMatch:single_view与参数“('article',2013,12,12,'VictoryMotorkesLaunched10NewBikesinDia',16)”和关键字参数“{}”相反。1尝试的模式:[u'(P[文章|评论|博客|新闻|视频]/(P\d{4})/(P\d{2})/(P\d{2})/(P\w+/(P\d+)'] 这是我的URLConf、模型和视图 /url.py ... url(r'^(P<post_type>[articl

获取错误:

NoReverseMatch:single_view与参数“('article',2013,12,12,'VictoryMotorkesLaunched10NewBikesinDia',16)”和关键字参数“{}”相反。1尝试的模式:[u'(P[文章|评论|博客|新闻|视频]/(P\d{4})/(P\d{2})/(P\d{2})/(P\w+/(P\d+)']

这是我的URLConf、模型和视图

/url.py

...
url(r'^(P<post_type>[article|review|blog|news|video])/', include('post.urls', namespace='post_views')),
...
urlpatterns = patterns('',
  url(r'^$', PostView.as_view(), name="index"),
  url(r'^(P<year>\d{4})/(P<month>\d{2})/(P<day>\d{2})/(P<slug>\w+)/(P<post_id>\d+)$', PostView.single, name="single_view")
)
def get_absolute_url(self):
    from django.core.urlresolvers import reverse
    return reverse('post_views:single_view', args=['article', 2013, 12, 12, str(self.slug).replace('-', ''), self.id])
def single(self, request, post_type, year, month, day, slug, post_id, *args, **kwargs):
    post_single = Post.objects.get(pk=1)

    context = {
        "post_single": post_single,
    }
    return self.render_to_response(context);
和视图

/post/views.py

...
url(r'^(P<post_type>[article|review|blog|news|video])/', include('post.urls', namespace='post_views')),
...
urlpatterns = patterns('',
  url(r'^$', PostView.as_view(), name="index"),
  url(r'^(P<year>\d{4})/(P<month>\d{2})/(P<day>\d{2})/(P<slug>\w+)/(P<post_id>\d+)$', PostView.single, name="single_view")
)
def get_absolute_url(self):
    from django.core.urlresolvers import reverse
    return reverse('post_views:single_view', args=['article', 2013, 12, 12, str(self.slug).replace('-', ''), self.id])
def single(self, request, post_type, year, month, day, slug, post_id, *args, **kwargs):
    post_single = Post.objects.get(pk=1)

    context = {
        "post_single": post_single,
    }
    return self.render_to_response(context);
解析程序错误:在@Yeo建议后尝试

from django.core.urlresolvers import reverse, resolve
from post.models import Post
p = Post.objects.get(pk=16)
reverse('post_views:single_view', args=['article', 2013, 12, 12, p.slug, p.id])
resolve('/article/2013/12/12/triumphlaunched10newbikesinindia/16/')
解决方案404:{u'path':u'article/2013/12/12/凯旋启动10Newbikesindia/16/',u'trusted':[[],[(无:车辆)^vehicle/>],[(无:post_view)^(p[article | review | blog | news | video])/>],[(无:图库/>,[(无:作者)^author/>,[.*$>],[.$>,[(无:无)^admin/doc/>,[(无:无)^管理员/文档/],[(管理员:无管理员工具)]


您的正则表达式格式不正确,请尝试替换

r'(P<post_type>[article|review|blog|news|video])'
r'(P[文章|评论|博客|新闻|视频])

r'(?粒子|评论|博客|新闻|视频)
注意queston符号和方括号的缺失

同样地,替换

r'^(P<year>\d{4})/(P<month>\d{2})/(P<day>\d{2})/(P<slug>\w+)/(P<post_id>\d+)$
r'^(P\d{4})/(P\d{2})/(P\d{2})/(P\w+/(P\d+)$

r'^(?P\d{4})/(?P\d{2})/(?P\d{2})/(?P\w+)/(?P\d+)$

尝试从
args
中删除
'article'
。为了更好地调试NoReverseMatch,请改为运行reverse命令,查看使用
解析器提供完整URL时的正确格式,当然,在django shell中运行它。你很快就能回答你自己的问题:)很好Luck@Rohan仍然无法工作…@Yeo我尝试了
解决
,但这也引发了错误。我试过:
resolve('article/2013/12/12/凯旋莱10Newbikesindia/16')
尝试使用前导的
//code>斜杠
resolve('/article/2013/12/12/凯旋莱10Newbikesindia/16/)
@VINAYKr.SHARMA很高兴它能帮上忙。若你们找到了满足你们需要的答案,你们可能会的。你们为我节省了很多时间。我从昨天开始就在挣扎。
P
?@VINAYKr.SHARMA之前的内容是什么(查找?P)。简单的
P
是一个普通字符,而
?P
是一个控制标记。您的原始regexp查找字符串
'P'
的精确匹配,后跟一个simbol(由于括号括住
[…]
a、r、t、i…。
Oops,我认为它使参数成为可选参数!