django - Using generic views with slashes in the primary key -


i'm making application primary key 1 of models contains slashes. example, xx/xxxxxxx/xx. presents problem when i'm writing url conf, don't want lock down containing number of slashes, want able have child views well... i.e.

  • http://example.com/xx/xxxxxxx/xx/
  • http://example.com/xx/xxxxxxx/xx/edit/

currently urlconf looks like

programme_patterns = patterns('',     url(r'^$',         login_required(views.programmedetailview.as_view()),         name='programme_detail'),     url(r'^edit/$',         login_required(views.programmeformview.as_view()),         name='programme_edit'), )  urlpatterns = patterns('',     url(r'^programmes/?p<pk>.*?/.*?/.*?)/',         include(programme_patterns)) ) 

having primary key slashes in url makes me feel uncomfortable it's unsemantic, should 1 'directory' not nest of three.

i wondering if there's way transform primary key use in url, example, replace slashes underscores. can't think of way without breaking reverse url machinery.

from docs:

model.get_absolute_url() define get_absolute_url() method tell django how calculate canonical url object. callers, method should appear return string can used refer object on http.

for example:

def get_absolute_url(self):     return "/people/%i/" % self.id  

(whilst code correct , simple, may not portable way write kind of method. reverse() function best approach.)

for example:

def get_absolute_url(self):     django.core.urlresolvers import reverse     return reverse('people.views.details', args=[str(self.id)])