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)])