【发布时间】:2023-03-28 18:45:01
【问题描述】:
我正在做一个项目,该项目需要显示有关城市的数据,这些数据是通过 URL 请求的,例如 example.com/city1 以获取 city1 信息等。
我在我的应用程序中使用了以下 url 模式和视图。此视图运行良好。
url(r'^(?P<cityId>[-\w]+)$',views.cityindex,name='cityindex'),
def cityindex(request, cityId):
city = City.objects.filter(url = cityId)
if len(city) == 0:
return redirect('/404')
return HttpResponse('City Data Extracted')
但是,当我尝试打开其他网址(如 /admin)或其他应用程序的网址时,它会被重定向到我的 cityindex 视图,然后重定向到我在上面的视图中处理的 404 页面。
以下是我在主 urls.py 文件中使用的 url 模式。
url(r'^', include('main.urls')),
url(r'^admin/', admin.site.urls),
url(r'^login_redirect/', include('loginapp.urls')),
我目前使用的是 Django 1.11.12。有什么办法可以阻止这个 url 被覆盖?
编辑: 我的 main.urls 文件中的网址
url(r'^$',views.index,name='index'),
url(r'^about$', views.aboutpage,name="aboutpage"),
url(r'^terms$', views.termspage,name="termspage"),
url(r'^privacy$', views.privacypage,name="privacypage"),
url(r'^(?P<cityId>[-\w]+)$',views.cityindex,name='cityindex'),
【问题讨论】:
-
您可以通过添加
$再试一次吗,例如`url(r'^admin/$', admin.site.urls), ` -
@ShafikurRahman 不工作。
NoReverseMatch at /admin/ Reverse for 'app_list' with keyword arguments '{'app_label': 'main'}' not found. 1 pattern(s) tried: [u'admin/$(?P<app_label>main|auth|error_report)/$'] -
请对此进行研究。可能是 url 正则表达式相关的问题
-
@SunilTatipelly url 声明顺序很重要,请将您的自定义正则表达式 url 放在底部
-
你应该显示 main.urls 的内容。
标签: django django-templates django-views