0
我正在創建一個應用程序,其中一個模型的主鍵包含斜槓。例如,xx/xxxxxxx/xx
。這在我編寫URL conf時會出現問題,因爲我不想將其鎖定爲僅包含一定數量的斜線,但我希望能夠具有子視圖以及...即在主鍵中使用帶斜槓的通用視圖
http://example.com/xx/xxxxxxx/xx/
http://example.com/xx/xxxxxxx/xx/edit/
目前我的URL配置看起來像
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))
)
具有主鍵斜槓的URL也使得米因爲它是非語義的,所以感到不舒服,這應該看起來像一個「目錄」,而不是三個巢穴。
我想知道是否有一種方法來轉換在URL中使用的主鍵,例如,用下劃線替換斜線。我只是想不到在不破壞反向URL機制的情況下做到這一點的方法。
但是說我想做'reverse('programme_edit',pk = instance.pk)' – joerick
你可以向你的模型添加你自己的方法,該方法返回帶斜槓的下劃線intead或者你可以使用get_absolute_url(這是不錯,因爲它也適用於管理網站) – yuvi
修改通用視圖以採用此不同ID的最佳方式是什麼? – joerick