﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
9956	Problematic Regexp in django.contrib.comments.urls	james_stevenson	Kevin Kubasik	"I'm using Django for my blog:  http://www.mazelife.com/blog. My model for a blog post uses a slug as a primary key, and that field only allows letters, numbers and dashes to be used (in regex terms, [a-zA-Z0-9-]+)
When using the comments app, this causes and error when I try to call get_content_object_url on a comment object attached to a blog post. 

Let's assume a hypothetical comment object, with the following properties:


{{{
comment.object_pk = ""sample-blog-post-slug""

comment.content_type_id = 11
}}}


'''Step 1''':  comment.get_content_object_url() is called in my application
'''Step 2''':  in django.contrib.comments.models, this is in the get_content_object_url method, ln. 36 - 39:



{{{
        return urlresolvers.reverse(
            ""comments-url-redirect"",
            args=(self.content_type_id, self.object_pk)
        )
}}}


So, in this case, this code is executed:
	

{{{
	urlresolvers.reverse(""comments-url-redirect"", args=(11, ""sample-blog-post-slug""))
}}}

        
'''Step 3'''. urlresolvers.reverse attempts to match this candidate:
	
	""comments/cr/11/sample-blog-post-slug/""

against this pattern, from django.contrib.comments.urls (ln. 17):


{{{
	r'^cr/(\d+)/(\w+)/$'
}}}

	
The problem here is that \w sequence does not match ""-"" in the blog post slug, so urlresolvers.reverse raises a NoReverseMatch exception.
I think that, for a primary key that will be used in a url, ""-"" is a vaild character and is probably even more prevalent than ""_"", which is matched by \w.
My proposed solution would be to modify django.contrib.comments.urls to match ""-"" characters in an object_pk. I've attached a patch to django.contrib.comments.urls that does this.




"		closed	contrib.comments	1.0		fixed	comments urls	kevin@…	Accepted	1	0	0	0	0	0
