我想保持我的网址动态和干净。 因此,我使用slu ..
我现在的问题是,我收到以下错误:
redefinition of group name 'slug' as group 2; was group 1 at position 42
我想我得到了这个错误,因为我的链中有两个slu .. 作为参考,我有一个ListView到ListView到UpdateView,来自django.views.generic的alls importet。第一个列表视图给了我第一个slug,更新视图给了我第二个。
这是网址模式(遍布应用):
第一个列表视图:
urlpatterns = [
url(r'^$', RestaurantListView.as_view(), name='restaurant-list'),
url(r'^(?P<slug>[\w-]+)/menus/', include('menu.urls', namespace='menu')),
]
第二个列表视图:
urlpatterns = [
url(r'^$', MenuListView.as_view(), name='menu-list'),
url(r'^(?P<slug>[\w-]+)/', MenuUpdateView.as_view(), name='menu-detail'),
]
在模板中,我通过以下方式获取对象:
<li><a href='{{obj.get_absolute_url}}'> {{obj}} </a></li>
我在相应的模型中定义了:
def get_absolute_url(self):
return reverse('restaurants:menu:menu-detail', kwargs={'slug': self.slug})
和
def get_absolute_url(self):
return reverse('restaurants:menu:menu-list', kwargs={'slug': self.slug})
所以最终得到的模式是:
restaurants/(?P<slug>[\w-]+)/menus/(?P<slug>[\w-]+)/
如何修复它以便我不再收到错误?
答案 0 :(得分:1)
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^articles/2003/$', views.special_case_2003),
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
]
了解更多详情https://docs.djangoproject.com/en/1.11/topics/http/urls/